annotate files/patch-src_apps_common_hiredis__libevent2.c @ 5:8133ddc49506

PKGNAMEPREFIX set to "fmg-"
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 27 Mar 2020 09:40:18 +0100
parents 9a1ee735f28f
children 4a6383e57d12
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 --- src/apps/common/hiredis_libevent2.c.orig 2019-03-02 21:06:19 UTC
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 +++ src/apps/common/hiredis_libevent2.c
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3 @@ -55,6 +55,7 @@ struct redisLibeventEvents
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4 char *ip;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5 int port;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
6 char *pwd;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
7 + char *usocket;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
8 int db;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 };
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11 @@ -223,12 +224,13 @@ void send_message_to_redis(redis_context_handle rch, c
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13 ///////////////////////// Attach /////////////////////////////////
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 -redis_context_handle redisLibeventAttach(struct event_base *base, char *ip0, int port0, char *pwd, int db)
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16 +redis_context_handle redisLibeventAttach(struct event_base *base, char *ip0, int port0, char *pwd, char *usocket, int db)
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17 {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19 struct redisLibeventEvents *e = NULL;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20 redisAsyncContext *ac = NULL;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22 + char sockpath[256] = "\0";
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
23 char ip[256];
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24 if(ip0 && ip0[0])
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25 STRCPY(ip,ip0);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26 @@ -239,7 +241,14 @@ redis_context_handle redisLibeventAttach(struct event_
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27 if(port0>0)
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
28 port=port0;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
30 - ac = redisAsyncConnect(ip, port);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31 + if(usocket)
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32 + STRCPY(sockpath, usocket);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33 +
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 + if(usocket) {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
35 + ac = redisAsyncConnectUnix(sockpath);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 + } else {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37 + ac = redisAsyncConnect(ip, port);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 + }
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 if (!ac) {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 fprintf(stderr,"Error: %s:%s\n", ac->errstr, ac->c.errstr);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 return NULL;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42 @@ -256,6 +265,11 @@ redis_context_handle redisLibeventAttach(struct event_
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 e->port = port;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 if(pwd)
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 e->pwd = turn_strdup(pwd);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 + if (usocket) {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 + e->usocket = turn_strdup(usocket);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 + } else {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 + e->usocket = NULL;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50 + }
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 e->db = db;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53 /* Register functions to start/stop listening for events */
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 @@ -277,6 +291,7 @@ redis_context_handle redisLibeventAttach(struct event_
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55 e);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
57 if (e->rev == NULL || e->wev == NULL) {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58 + /* XXX FIXME TBD: free e->ip, e->pwd, e->usocket */
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
59 turn_free(e, sizeof(struct redisLibeventEvents));
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
60 return NULL;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61 }
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62 @@ -327,7 +342,11 @@ static void redis_reconnect(struct redisLibeventEvents
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 e->context = NULL;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
64 }
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
66 - ac = redisAsyncConnect(e->ip, e->port);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
67 + if(e->usocket) {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
68 + ac = redisAsyncConnectUnix(e->usocket);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
69 + } else {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
70 + ac = redisAsyncConnect(e->ip, e->port);
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
71 + }
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
72 if(!ac) {
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
73 return;
9a1ee735f28f Patch to allow redis connections by a Unix socket.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
74 }