-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: urcd
action: commit
revision:
path_from:
revision_from: c61636fe2507c090c9c528027f63a54ea951404a:
path_to:
revision_to:

git.thebackupbox.net

urcd

git://git.thebackupbox.net/urcd

commit c61636fe2507c090c9c528027f63a54ea951404a
Author: root <root@administrator.(none)>
Date:   Mon Mar 3 03:02:06 2014 +0000

    [src/urc*.c] bugfix (struct sockaddr_un *) (thanks epoch)

diff --git a/README b/README

index cbc7dcf3ca7604b0d0e0cab14c53c37799b5e5f5..

index ..0807c3c99c3ae648dc8ba011575f8b50cf5f8fef 100644

--- a/README
+++ b/README
@@ -333,3 +333,4 @@ logging URC services:
   supervise /path/to/urcd-service/log 2>/dev/null & disown
   sleep 4
   svstat /path/to/urcd-service/log
+  svc -t /path/to/urcd-service/
diff --git a/src/urchub.c b/src/urchub.c

index 57e26a2664f1d9b30195138d9a65ef776e78d846..

index ..f59e26c86a6d9cf43e300be0604672f3e3f1d3dc 100644

--- a/src/urchub.c
+++ b/src/urchub.c
@@ -72,7 +72,7 @@ main(int argc, char **argv)
   if (userlen > UNIX_PATH_MAX) exit(5);
   memcpy(&sock.sun_path,user,userlen);
   unlink(sock.sun_path);
-  if (bind(sockfd,(struct sockaddr *)&sock,sizeof(sock))<0) exit(6);
+  if (bind(sockfd,(struct sockaddr_un *)&sock,sizeof(sock))<0) exit(6);

   int strlen_recvpath;
   struct sockaddr_un recvpath;
@@ -88,7 +88,7 @@ main(int argc, char **argv)
   while (1)
   {
     bzero(recvpath.sun_path,UNIX_PATH_MAX);
-    n = recvfrom(sockfd,buffer,65536,0,(struct sockaddr *)&recvpath,&recvpath_len);
+    n = recvfrom(sockfd,buffer,65536,0,(struct sockaddr_un *)&recvpath,&recvpath_len);
     if (!n) continue;
     if (n<0) sock_close(7);
     if (n!=2+16+8+buffer[0]*256+buffer[1]) continue;
@@ -108,7 +108,7 @@ main(int argc, char **argv)
       if ((sendpath_len == strlen_recvpath) && (!memcmp(sendpath->d_name,recvpath.sun_path,strlen_recvpath))) continue;
       bzero(sendpaths.sun_path,UNIX_PATH_MAX);
       memcpy(&sendpaths.sun_path,sendpath->d_name,sendpath_len);
-      sendto(sockfd,buffer,n,MSG_DONTWAIT,(struct sockaddr *)&sendpaths,sizeof(sendpaths));
+      sendto(sockfd,buffer,n,MSG_DONTWAIT,(struct sockaddr_un *)&sendpaths,sizeof(sendpaths));
     } closedir(root);
   }
 }
diff --git a/src/urcrecv.c b/src/urcrecv.c

index 2753704f9ef43b275364120afec921d58591aec1..

index ..470bbfe2443f5059f3a3a17d3f8bdacb7d5d9abf 100644

--- a/src/urcrecv.c
+++ b/src/urcrecv.c
@@ -85,7 +85,7 @@ main(int argc, char **argv)
       if (pathlen > UNIX_PATH_MAX) continue;
       bzero(paths.sun_path,UNIX_PATH_MAX);
       memcpy(&paths.sun_path,path->d_name,pathlen);
-      sendto(sockfd,buffer,n,0,(struct sockaddr *)&paths,sizeof(paths));
+      sendto(sockfd,buffer,n,0,(struct sockaddr_un *)&paths,sizeof(paths));
     } closedir(root);

   }
diff --git a/src/urcsend.c b/src/urcsend.c

index e3eef17e28f1f1993c34f8e6ff2f8d131108bfc9..

index ..fd1206cbbc338b913cecf4cb5a918cd70ced7151 100644

--- a/src/urcsend.c
+++ b/src/urcsend.c
@@ -57,7 +57,7 @@ main(int argc, char **argv)
   if (n > UNIX_PATH_MAX) exit(4);
   memcpy(&sock.sun_path,user,n);
   unlink(sock.sun_path);
-  if (bind(sockfd,(struct sockaddr *)&sock,sizeof(sock))<0) exit(5);
+  if (bind(sockfd,(struct sockaddr_un *)&sock,sizeof(sock))<0) exit(5);

   struct sockaddr_un path;
   path.sun_family = AF_UNIX;
@@ -66,7 +66,7 @@ main(int argc, char **argv)
   while (1)
   {
     bzero(path.sun_path,UNIX_PATH_MAX);
-    n = recvfrom(sockfd,buffer,1024,0,(struct sockaddr *)&path,&path_len);
+    n = recvfrom(sockfd,buffer,1024,0,(struct sockaddr_un *)&path,&path_len);
     if (!n) continue;
     if (n<0) sock_close(6);
     if (!path_len) continue;
diff --git a/src/urcstream.c b/src/urcstream.c

index 9bf223918a72d6ed129f0a6c8574cef3d3a72d70..

index ..02024358f432362ee7bef3708fda188057b740cb 100644

--- a/src/urcstream.c
+++ b/src/urcstream.c
@@ -71,7 +71,7 @@ main(int argc, char **argv)
   if (userlen > UNIX_PATH_MAX) exit(4);
   memcpy(&sock.sun_path,user,userlen);
   unlink(sock.sun_path);
-  if (bind(sockfd,(struct sockaddr *)&sock,sizeof(sock))<0) exit(5);
+  if (bind(sockfd,(struct sockaddr_un *)&sock,sizeof(sock))<0) exit(5);

   struct pollfd fds[2];
   fds[0].fd = rd; fds[0].events = POLLIN | POLLPRI;
@@ -108,7 +108,7 @@ main(int argc, char **argv)
         if ((pathlen == userlen) && (!memcmp(path->d_name,user,userlen))) continue;
         bzero(paths.sun_path,UNIX_PATH_MAX);
         memcpy(&paths.sun_path,path->d_name,pathlen);
-        sendto(sockfd,buffer,n,MSG_DONTWAIT,(struct sockaddr *)&paths,sizeof(paths));
+        sendto(sockfd,buffer,n,MSG_DONTWAIT,(struct sockaddr_un *)&paths,sizeof(paths));
       } closedir(root);
     }

diff --git a/src/urcstream2hub.c b/src/urcstream2hub.c

index b58e4ab7172a2b7062b83bea16637b94b439fb46..

index ..9e98dacdb0c536e617125841dc1445f837181124 100644

--- a/src/urcstream2hub.c
+++ b/src/urcstream2hub.c
@@ -79,7 +79,7 @@ main(int argc, char **argv)
   if (userlen > UNIX_PATH_MAX) exit(7);
   memcpy(&sock.sun_path,user,userlen+1);
   unlink(sock.sun_path);
-  if (bind(sockfd,(struct sockaddr *)&sock,sizeof(sock.sun_family)+userlen)<0) exit(8);
+  if (bind(sockfd,(struct sockaddr_un *)&sock,sizeof(sock.sun_family)+userlen)<0) exit(8);

   struct pollfd fds[2];
   fds[0].fd = urcstreamout[0]; fds[0].events = POLLIN | POLLPRI;
@@ -109,7 +109,7 @@ main(int argc, char **argv)
       taia_now(buffer+2);
       taia_pack(buffer+2,buffer+2);
       if (read(devurandom,buffer+2+16,8)<8) sock_close(10);
-      if (sendto(sockfd,buffer,2+16+8+n,MSG_DONTWAIT,(struct sockaddr *)&hub,sizeof(hub))<0) usleep(250000);
+      if (sendto(sockfd,buffer,2+16+8+n,MSG_DONTWAIT,(struct sockaddr_un *)&hub,sizeof(hub))<0) usleep(250000);
     }

     urcwrite: while (poll(fds+1,1,0))

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 14:59:51 2024