Skip to content

Commit

Permalink
update support files for sway_ipc changes
Browse files Browse the repository at this point in the history
  • Loading branch information
LBCrion committed Sep 7, 2024
1 parent 08232fd commit c8ea07a
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 15 deletions.
33 changes: 26 additions & 7 deletions src/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,27 @@ gint socket_connect ( const gchar *sockaddr, gint to )
struct sockaddr_un addr;
struct timeval timeout = {.tv_sec = to/1000, .tv_usec = to%1000};

sock = socket(AF_UNIX,SOCK_STREAM,0);
if (sock == -1)
if( (sock = socket(AF_UNIX,SOCK_STREAM,0))==-1)
return -1;
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, sockaddr, sizeof(addr.sun_path) - 1);
if(connect(sock,(struct sockaddr *)&addr,sizeof(struct sockaddr_un)) != -1 )
if(setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)) != -1)
return sock;
if(connect(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_un))!=-1 &&
setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout))!=-1)
return sock;
close(sock);
return -1;
}

gssize recv_retry ( gint sock, gpointer buff, gsize len )
{
gsize rlen, tlen=0;

while(tlen<len && (rlen = recv(sock, buff+tlen, len-tlen, 0))>0 )
tlen += rlen;

return tlen;
}

json_object *recv_json ( gint sock, gssize len )
{
static gchar *buf;
Expand Down Expand Up @@ -161,16 +170,26 @@ gboolean json_bool_by_name ( struct json_object *obj, gchar *name, gboolean defv
}

/* get double value from an object within current object */
gdouble json_double_by_name ( struct json_object *obj, gchar *name, gdouble defval)
gdouble json_double_by_name ( struct json_object *obj, gchar *key, gdouble defval)
{
struct json_object *ptr;

if(json_object_object_get_ex(obj,name,&ptr))
if(json_object_object_get_ex(obj, key, &ptr))
return json_object_get_double(ptr);

return defval;
}

struct json_object *json_array_by_name ( struct json_object *obj, gchar *key )
{
struct json_object *ptr;

if(json_object_object_get_ex(obj, key, &ptr) &&
json_object_is_type(ptr, json_type_array))
return ptr;
return NULL;
}

gboolean pattern_match ( gchar **dict, gchar *string )
{
gint i;
Expand Down
2 changes: 2 additions & 0 deletions src/sfwbar.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,14 @@ void widget_parse_css ( GtkWidget *widget, gchar *css );
GdkMonitor *widget_get_monitor ( GtkWidget *self );
gint socket_connect ( const gchar *sockaddr, gint to );
json_object *recv_json ( gint sock, gssize len );
gssize recv_retry ( gint sock, gpointer buff, gsize len );
void list_remove_link ( GList **list, void *child );
gchar *get_xdg_config_file ( gchar *fname, gchar *extra );
const gchar *json_string_by_name ( struct json_object *obj, gchar *name );
gint64 json_int_by_name ( struct json_object *obj, gchar *name, gint64 defval);
gboolean json_bool_by_name ( struct json_object *obj, gchar *name, gboolean defval);
gdouble json_double_by_name ( struct json_object *obj, gchar *name, gdouble defval);
struct json_object *json_array_by_name ( struct json_object *obj, gchar *key );
gboolean pattern_match ( gchar **dict, gchar *string );
gboolean regex_match_list ( GList *dict, gchar *string );
int md5_file( gchar *path, guchar output[16] );
Expand Down
8 changes: 0 additions & 8 deletions src/sway_ipc.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,7 @@
#define __SWAY_IPC_H__

void sway_ipc_init ( void );
GdkRectangle sway_ipc_parse_rect ( struct json_object *obj );
gboolean sway_ipc_active ( void );
json_object *sway_ipc_poll ( gint sock, gint32 *etype );
int sway_ipc_open (int to);
int sway_ipc_send ( gint sock, gint32 type, gchar *command );
void sway_ipc_command ( gchar *cmd, ... );
int sway_ipc_subscribe ( gint sock );
gboolean sway_ipc_event ( GIOChannel *, GIOCondition , gpointer );
void sway_ipc_client_init ( ScanFile *file );
void sway_ipc_pager_populate ( void );

#endif

0 comments on commit c8ea07a

Please sign in to comment.