chiark / gitweb /
Disobedience login window now only remembers password etc if they
[disorder] / lib / client-common.c
index 53da8acc66899da0287e19a9280de85188e6c7a2..2c639348019e3d507c89d58a604173e07ade306e 100644 (file)
 #include "mem.h"
 
 /** @brief Figure out what address to connect to
+ * @param c Configuration to honor
  * @param sap Where to store pointer to sockaddr
  * @param namep Where to store socket name
  * @return Socket length, or (socklen_t)-1
  */
-socklen_t find_server(struct sockaddr **sap, char **namep) {
+socklen_t find_server(struct config *c,
+                      struct sockaddr **sap, char **namep) {
   struct sockaddr *sa;
   struct sockaddr_un su;
   struct addrinfo *res = 0;
@@ -50,13 +52,13 @@ socklen_t find_server(struct sockaddr **sap, char **namep) {
     .ai_protocol = IPPROTO_TCP,
   };
 
-  if(config->connect.n) {
-    res = get_address(&config->connect, &pref, &name);
+  if(c->connect.n) {
+    res = get_address(&c->connect, &pref, &name);
     if(!res) return -1;
     sa = res->ai_addr;
     len = res->ai_addrlen;
   } else {
-    name = config_get_file("socket");
+    name = config_get_file2(c, "socket");
     if(strlen(name) >= sizeof su.sun_path) {
       error(errno, "socket path is too long");
       return -1;