return 0;
}
-static int pakfire_scriptlet_set(pakfire_scriptlet* scriptlet, const char* data, size_t size) {
- if (scriptlet->data)
- free(scriptlet->data);
+static int pakfire_scriptlet_set(pakfire_scriptlet* self, const char* data, size_t size) {
+ if (self->data)
+ free(self->data);
// Fill size if unset
if (!size)
size = strlen(data);
// Allocate space for data
- scriptlet->data = malloc(size);
- if (!scriptlet->data)
+ self->data = malloc(size);
+ if (!self->data)
return -errno;
// Copy data
- memcpy(scriptlet->data, data, size);
- scriptlet->size = size;
+ memcpy(self->data, data, size);
+ self->size = size;
return 0;
}
-static void pakfire_scriptlet_free(pakfire_scriptlet* scriptlet) {
- if (scriptlet->data)
- free(scriptlet->data);
- if (scriptlet->ctx)
- pakfire_ctx_unref(scriptlet->ctx);
- free(scriptlet);
+static void pakfire_scriptlet_free(pakfire_scriptlet* self) {
+ if (self->data)
+ free(self->data);
+ if (self->ctx)
+ pakfire_ctx_unref(self->ctx);
+ free(self);
}
int pakfire_scriptlet_create(pakfire_scriptlet** scriptlet,
pakfire_ctx* ctx, const char* type, const char* data, size_t size) {
+ pakfire_scriptlet* self = NULL;
int r;
// Check inputs
return -ENOTSUP;
// Allocate some memory
- pakfire_scriptlet* s = calloc(1, sizeof(*s));
- if (!s)
+ self = calloc(1, sizeof(*self));
+ if (!self)
return -errno;
// Store reference to the context
- s->ctx = pakfire_ctx_ref(ctx);
+ self->ctx = pakfire_ctx_ref(ctx);
// Initialize the reference counter
- s->nrefs = 1;
+ self->nrefs = 1;
// Set type
- r = pakfire_string_set(s->type, type);
+ r = pakfire_string_set(self->type, type);
if (r)
goto ERROR;
// Store the payload
- r = pakfire_scriptlet_set(s, data, size);
+ r = pakfire_scriptlet_set(self, data, size);
if (r)
goto ERROR;
// Return the pointer
- *scriptlet = s;
-
+ *scriptlet = self;
return 0;
ERROR:
- pakfire_scriptlet_free(s);
+ pakfire_scriptlet_free(self);
return r;
};
-pakfire_scriptlet* pakfire_scriptlet_ref(pakfire_scriptlet* scriptlet) {
- scriptlet->nrefs++;
+pakfire_scriptlet* pakfire_scriptlet_ref(pakfire_scriptlet* self) {
+ self->nrefs++;
- return scriptlet;
+ return self;
}
-pakfire_scriptlet* pakfire_scriptlet_unref(pakfire_scriptlet* scriptlet) {
- if (--scriptlet->nrefs > 0)
- return scriptlet;
+pakfire_scriptlet* pakfire_scriptlet_unref(pakfire_scriptlet* self) {
+ if (--self->nrefs > 0)
+ return self;
- pakfire_scriptlet_free(scriptlet);
+ pakfire_scriptlet_free(self);
return NULL;
}
-const char* pakfire_scriptlet_get_type(pakfire_scriptlet* scriptlet) {
- return scriptlet->type;
+const char* pakfire_scriptlet_get_type(pakfire_scriptlet* self) {
+ return self->type;
}
-const char* pakfire_scriptlet_get_data(pakfire_scriptlet* scriptlet, size_t* size) {
+const char* pakfire_scriptlet_get_data(pakfire_scriptlet* self, size_t* size) {
if (size)
- *size = scriptlet->size;
+ *size = self->size;
- return scriptlet->data;
+ return self->data;
}
-static int pakfire_scriptlet_is_shell_script(pakfire_scriptlet* scriptlet) {
+static int pakfire_scriptlet_is_shell_script(pakfire_scriptlet* self) {
const char* interpreter = "#!/bin/sh";
// data must be long enough
- if (scriptlet->size <= strlen(interpreter))
+ if (self->size <= strlen(interpreter))
return 0;
// If the string begins with the interpreter, this is a match
- if (strncmp(scriptlet->data, interpreter, strlen(interpreter)) == 0)
- return 1;
-
- return 0;
+ return (strncmp(self->data, interpreter, strlen(interpreter)) == 0);
}
int pakfire_scriptlet_execute(pakfire_scriptlet* self, pakfire_jail* jail) {
int pakfire_scriptlet_create(pakfire_scriptlet** scriptlet,
pakfire_ctx* ctx, const char* type, const char* data, size_t size);
-pakfire_scriptlet* pakfire_scriptlet_ref(pakfire_scriptlet* scriptlet);
-pakfire_scriptlet* pakfire_scriptlet_unref(pakfire_scriptlet* scriptlet);
+pakfire_scriptlet* pakfire_scriptlet_ref(pakfire_scriptlet* self);
+pakfire_scriptlet* pakfire_scriptlet_unref(pakfire_scriptlet* self);
-const char* pakfire_scriptlet_get_type(pakfire_scriptlet* scriptlet);
-const char* pakfire_scriptlet_get_data(pakfire_scriptlet* scriptlet, size_t* size);
+const char* pakfire_scriptlet_get_type(pakfire_scriptlet* self);
+const char* pakfire_scriptlet_get_data(pakfire_scriptlet* self, size_t* size);
-int pakfire_scriptlet_execute(pakfire_scriptlet* scriptlet, pakfire_jail* jail);
+int pakfire_scriptlet_execute(pakfire_scriptlet* self, pakfire_jail* jail);
#endif /* PAKFIRE_SCRIPTLET_H */