chiark / gitweb /
build fixes, works on mac now
authorRichard Kettlewell <rjk@greenend.org.uk>
Wed, 3 Oct 2007 21:19:40 +0000 (22:19 +0100)
committerRichard Kettlewell <rjk@greenend.org.uk>
Wed, 3 Oct 2007 21:19:40 +0000 (22:19 +0100)
README.mac
server/play.c
server/speaker.c
server/trackdb.c

index 2a17cc1e02d6d0b32f5bfc3e703ca6c91f8747a5..6ccbf6a67057bd94d818287684a036ad764b4b38 100644 (file)
@@ -1,9 +1,8 @@
 DisOrder on OS X
 ================
 
-The server builds on OS X.  However the kernel panics when I run it
-(kernel 8.10.1).  Until Apple can provide a stable operating system,
-it is not recommended that you run the server on this platform.
+The server builds on OS X.  It is not well tested in this environment.
+Please report successes and failures!
 
 
 Things you will need to do:
index 1530fe8a29fd55e0f7f75074dbc579dd7ce3d033..fbd7f704c6db208435b17af434f5df3adac5e7e1 100644 (file)
@@ -392,7 +392,7 @@ static int start(ev_source *ev,
          snprintf(addr.sun_path, sizeof addr.sun_path,
                   "%s/speaker", config->home);
          sfd = xsocket(PF_UNIX, SOCK_STREAM, 0);
-         if(connect(sfd, &addr, sizeof addr) < 0)
+         if(connect(sfd, (const struct sockaddr *)&addr, sizeof addr) < 0)
            fatal(errno, "connecting to %s", addr.sun_path);
          l = strlen(q->id);
          if(write(sfd, &l, sizeof l) < 0
index 1e3a059ca552ecea68833f6ccf1080f9d2cb3a40..2c742f75ef56331b8030c9ae0c9c06102a732553 100644 (file)
@@ -469,7 +469,7 @@ static void mainloop(void) {
       uint32_t l;
       char id[24];
 
-      if((fd = accept(listenfd, &addr, &addrlen)) >= 0) {
+      if((fd = accept(listenfd, (struct sockaddr *)&addr, &addrlen)) >= 0) {
         if(read(fd, &l, sizeof l) < 4) {
           error(errno, "reading length from inbound connection");
           xclose(fd);
@@ -627,7 +627,7 @@ int main(int argc, char **argv) {
   if(unlink(addr.sun_path) < 0 && errno != ENOENT)
     error(errno, "removing %s", addr.sun_path);
   xsetsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof one);
-  if(bind(listenfd, &addr, sizeof addr) < 0)
+  if(bind(listenfd, (const struct sockaddr *)&addr, sizeof addr) < 0)
     fatal(errno, "error binding socket to %s", addr.sun_path);
   xlisten(listenfd, 128);
   nonblock(listenfd);
index ab5a5e92b56375bdeb79d768f9866d7a9233d804..d0147e6e023b66cc68ce5f8ad57788bd990fdd0e 100644 (file)
@@ -129,7 +129,7 @@ void trackdb_init(int recover) {
                               |DB_CREATE
                               |recover_type[recover],
                               0666)))
-    fatal(0, "trackdb_env->open: %s", db_strerror(err));
+    fatal(0, "trackdb_env->open %s: %s", config->home, db_strerror(err));
   trackdb_env->set_errpfx(trackdb_env, "DB");
   trackdb_env->set_errfile(trackdb_env, stderr);
   trackdb_env->set_verbose(trackdb_env, DB_VERB_DEADLOCK, 1);