segfault because of pointerarythmetic
This commit is contained in:
parent
43146c7596
commit
8c4815cd7e
30
main.c
30
main.c
@ -1,4 +1,5 @@
|
|||||||
#include<stdio.h>
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
#include<curl/curl.h>
|
#include<curl/curl.h>
|
||||||
#include<string.h>
|
#include<string.h>
|
||||||
#include<dbus/dbus.h>
|
#include<dbus/dbus.h>
|
||||||
@ -6,7 +7,7 @@
|
|||||||
int gotify_message(char *,char *,char *);
|
int gotify_message(char *,char *,char *);
|
||||||
int systemdCall(DBusConnection *,char *, char *);
|
int systemdCall(DBusConnection *,char *, char *);
|
||||||
int checkIsActive(DBusConnection *connection, char *service_name);
|
int checkIsActive(DBusConnection *connection, char *service_name);
|
||||||
int systemdUnitCall(DBusConnection *connection,char *method,char *param);
|
int systemdUnitCall(DBusConnection *connection,char *target,char *method,char *param,char **result);
|
||||||
/*
|
/*
|
||||||
*sytemctl show gotify-server | grep PID
|
*sytemctl show gotify-server | grep PID
|
||||||
* */
|
* */
|
||||||
@ -20,6 +21,7 @@ int main(void)
|
|||||||
dbus_bool_t allow_user=0;
|
dbus_bool_t allow_user=0;
|
||||||
DBusConnection *connection=NULL;
|
DBusConnection *connection=NULL;
|
||||||
DBusError error;
|
DBusError error;
|
||||||
|
char *result;
|
||||||
|
|
||||||
dbus_error_init(&error);
|
dbus_error_init(&error);
|
||||||
connection = dbus_bus_get(DBUS_BUS_SESSION,&error);//DBUS_BUS_SYSTEM
|
connection = dbus_bus_get(DBUS_BUS_SESSION,&error);//DBUS_BUS_SYSTEM
|
||||||
@ -67,7 +69,9 @@ int main(void)
|
|||||||
//systemdCall(connection,"GetUnit","timers.target");
|
//systemdCall(connection,"GetUnit","timers.target");
|
||||||
//systemdCall(connection,"ListUnits",NULL);
|
//systemdCall(connection,"ListUnits",NULL);
|
||||||
|
|
||||||
systemdUnitCall(connection,"Get","org.freedesktop.systemd1.Unit");
|
systemdUnitCall(connection,"/org/freedesktop/systemd1/unit/timers_2etarget","Get","SubState",&result);
|
||||||
|
systemdUnitCall(connection,"/org/freedesktop/systemd1/unit/sysinit_2etarget","Get","SubState",&result);
|
||||||
|
printf("result systemdUnitCall: %s\n",result);
|
||||||
gotify_message("https://5ccppi.org:4433/message?token=ApPFbwayM5zDXf3","anothertitle","anothermessage");
|
gotify_message("https://5ccppi.org:4433/message?token=ApPFbwayM5zDXf3","anothertitle","anothermessage");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -225,7 +229,7 @@ int systemdCall(DBusConnection *connection,char *method,char *param)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int systemdUnitCall(DBusConnection *connection,char *method,char *param)
|
int systemdUnitCall(DBusConnection *connection,char *target,char *method,char *param,char **result)
|
||||||
{
|
{
|
||||||
|
|
||||||
DBusError error;
|
DBusError error;
|
||||||
@ -233,15 +237,16 @@ int systemdUnitCall(DBusConnection *connection,char *method,char *param)
|
|||||||
DBusMessage *ret_msg;
|
DBusMessage *ret_msg;
|
||||||
DBusMessageIter iter;
|
DBusMessageIter iter;
|
||||||
DBusMessageIter array_iter;
|
DBusMessageIter array_iter;
|
||||||
DBusMessage *value;
|
|
||||||
DBusMessageIter variant_iter;
|
DBusMessageIter variant_iter;
|
||||||
|
|
||||||
|
result=NULL;
|
||||||
char *reply_msg=NULL;
|
char *reply_msg=NULL;
|
||||||
int ret1,ret2;
|
int ret1,ret2;
|
||||||
|
char *param2 = "org.freedesktop.systemd1.Unit";
|
||||||
|
|
||||||
dbus_error_init(&error);
|
dbus_error_init(&error);
|
||||||
//dest(servcice/bus) ,path(object) ,iface method
|
//dest(servcice/bus) ,path(object) ,iface method
|
||||||
msg = dbus_message_new_method_call("org.freedesktop.systemd1","/org/freedesktop/systemd1/unit/timers_2etarget","org.freedesktop.DBus.Properties",method);
|
msg = dbus_message_new_method_call("org.freedesktop.systemd1",target,"org.freedesktop.DBus.Properties",method);
|
||||||
if(NULL == msg)
|
if(NULL == msg)
|
||||||
{
|
{
|
||||||
fprintf(stderr,"Message null, no message created\n");
|
fprintf(stderr,"Message null, no message created\n");
|
||||||
@ -253,10 +258,10 @@ int systemdUnitCall(DBusConnection *connection,char *method,char *param)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(param != NULL)
|
if(param2 != NULL)
|
||||||
{
|
{
|
||||||
dbus_message_iter_init_append(msg,&iter);
|
dbus_message_iter_init_append(msg,&iter);
|
||||||
if(!dbus_message_iter_append_basic(&iter,DBUS_TYPE_STRING,¶m))
|
if(!dbus_message_iter_append_basic(&iter,DBUS_TYPE_STRING,¶m2))
|
||||||
{
|
{
|
||||||
fprintf(stderr,"Error appending");
|
fprintf(stderr,"Error appending");
|
||||||
return -1;
|
return -1;
|
||||||
@ -264,8 +269,7 @@ int systemdUnitCall(DBusConnection *connection,char *method,char *param)
|
|||||||
else{
|
else{
|
||||||
printf("message appended\n");
|
printf("message appended\n");
|
||||||
}
|
}
|
||||||
char *param2="LoadState";
|
if(!dbus_message_iter_append_basic(&iter,DBUS_TYPE_STRING,¶m))
|
||||||
if(!dbus_message_iter_append_basic(&iter,DBUS_TYPE_STRING,¶m2))
|
|
||||||
{
|
{
|
||||||
fprintf(stderr,"Error appending");
|
fprintf(stderr,"Error appending");
|
||||||
return -1;
|
return -1;
|
||||||
@ -288,7 +292,7 @@ int systemdUnitCall(DBusConnection *connection,char *method,char *param)
|
|||||||
printf("ret1 type:%c\n",ret1);
|
printf("ret1 type:%c\n",ret1);
|
||||||
while(ret1 != DBUS_TYPE_INVALID)
|
while(ret1 != DBUS_TYPE_INVALID)
|
||||||
{
|
{
|
||||||
if(ret1 == *DBUS_TYPE_OBJECT_PATH_AS_STRING)
|
if(ret1 == DBUS_TYPE_OBJECT_PATH)
|
||||||
{
|
{
|
||||||
printf("succesfull received message\narg type %c\n",ret1);
|
printf("succesfull received message\narg type %c\n",ret1);
|
||||||
dbus_message_iter_get_basic(&reply_iter,&reply_msg);
|
dbus_message_iter_get_basic(&reply_iter,&reply_msg);
|
||||||
@ -307,9 +311,9 @@ int systemdUnitCall(DBusConnection *connection,char *method,char *param)
|
|||||||
printf("str_val:%s\n",type);
|
printf("str_val:%s\n",type);
|
||||||
if(type[0] == DBUS_TYPE_STRING)
|
if(type[0] == DBUS_TYPE_STRING)
|
||||||
{
|
{
|
||||||
char *str_val;
|
// result = malloc(sizeof(char)*64);
|
||||||
dbus_message_iter_get_basic(&variant_iter,&str_val);
|
dbus_message_iter_get_basic(&variant_iter,*result);
|
||||||
printf("str_val:%s\n",str_val);
|
// printf("result inside function:%s\n",*result);
|
||||||
}
|
}
|
||||||
//dbus_message_iter_get_basic(&reply_iter,&value);
|
//dbus_message_iter_get_basic(&reply_iter,&value);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user