author | Michael Krelin <hacker@klever.net> | 2007-07-28 18:20:38 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2007-07-28 18:20:38 (UTC) |
commit | 2046805030295f646052c635e525a4ae2ec787cc (patch) (unidiff) | |
tree | bd37e6580e722da2c3dba427d2b5d9641443b394 | |
parent | 47820253bc995823e85a78b84a36156c4b3425f4 (diff) | |
download | misc-2046805030295f646052c635e525a4ae2ec787cc.zip misc-2046805030295f646052c635e525a4ae2ec787cc.tar.gz misc-2046805030295f646052c635e525a4ae2ec787cc.tar.bz2 |
net-im/jabberd: fixed patch
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | net-im/jabberd/files/jabberd-2.1.11-r1.patch | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/net-im/jabberd/files/jabberd-2.1.11-r1.patch b/net-im/jabberd/files/jabberd-2.1.11-r1.patch index 441163c..6eba147 100644 --- a/net-im/jabberd/files/jabberd-2.1.11-r1.patch +++ b/net-im/jabberd/files/jabberd-2.1.11-r1.patch | |||
@@ -80,32 +80,48 @@ index 099aec9..29dca26 100644 | |||
80 | + have_pgsql=yes | 80 | + have_pgsql=yes |
81 | + if test "x-$PGSQL_INCLUDE" != "x-"; then | 81 | + if test "x-$PGSQL_INCLUDE" != "x-"; then |
82 | + PGSQL_CFLAGS="-I $PGSQL_INCLUDE" | 82 | + PGSQL_CFLAGS="-I $PGSQL_INCLUDE" |
83 | + fi | 83 | + fi |
84 | + if test "x-$PGSQL_LIBDIR" != "x-"; then | 84 | + if test "x-$PGSQL_LIBDIR" != "x-"; then |
85 | + PGSQL_LIBS="-L$PGSQL_LIBDIR -lpq" | 85 | + PGSQL_LIBS="-L$PGSQL_LIBDIR -lpq" |
86 | + fi | 86 | + fi |
87 | + AC_DEFINE(STORAGE_POSTGRES, 1, [Define to 1 if you want to use PostgreSQL for storage.]) | 87 | + AC_DEFINE(STORAGE_POSTGRES, 1, [Define to 1 if you want to use PostgreSQL for storage.]) |
88 | + ]) | 88 | + ]) |
89 | + if test "x-$have_pgsql" != "x-yes" ; then | 89 | + if test "x-$have_pgsql" != "x-yes" ; then |
90 | + AC_MSG_ERROR([PostgreSQL support requested, but headers/libraries not found.]) | 90 | + AC_MSG_ERROR([PostgreSQL support requested, but headers/libraries not found.]) |
91 | + fi | 91 | + fi |
92 | +fi | 92 | +fi |
93 | fi | 93 | fi |
94 | AC_SUBST(PGSQL_CFLAGS) | 94 | AC_SUBST(PGSQL_CFLAGS) |
95 | AC_SUBST(PGSQL_LIBS) | 95 | AC_SUBST(PGSQL_LIBS) |
96 | diff --git a/etc/c2s.xml.dist.in b/etc/c2s.xml.dist.in | ||
97 | index 873a133..0589ada 100644 | ||
98 | --- a/etc/c2s.xml.dist.in | ||
99 | +++ b/etc/c2s.xml.dist.in | ||
100 | @@ -325,6 +325,11 @@ | ||
101 | |||
102 | <!-- PostgreSQL module configuration --> | ||
103 | <pgsql> | ||
104 | + <!-- PostgreSQL connection info --> | ||
105 | + <conninfo>dbname=jabberd2 user=jabberd2 password=secret</conninfo> | ||
106 | + | ||
107 | + <!-- The rest of connection settings are used only in absence of 'conninfo' --> | ||
108 | + | ||
109 | <!-- Database server host and port --> | ||
110 | <host>localhost</host> | ||
111 | <port>5432</port> | ||
96 | diff --git a/mio/mio_impl.h b/mio/mio_impl.h | 112 | diff --git a/mio/mio_impl.h b/mio/mio_impl.h |
97 | index 6f72a5c..cabdc67 100644 | 113 | index 6f72a5c..cabdc67 100644 |
98 | --- a/mio/mio_impl.h | 114 | --- a/mio/mio_impl.h |
99 | +++ b/mio/mio_impl.h | 115 | +++ b/mio/mio_impl.h |
100 | @@ -226,8 +226,12 @@ static void _mio_run(mio_t m, int timeout) | 116 | @@ -226,8 +226,12 @@ static void _mio_run(mio_t m, int timeout) |
101 | { | 117 | { |
102 | mio_fd_t fd = MIO_ITERATOR_FD(m,iter); | 118 | mio_fd_t fd = MIO_ITERATOR_FD(m,iter); |
103 | 119 | ||
104 | - /* skip dead slots */ | 120 | - /* skip dead slots */ |
105 | - if(FD(m,fd)->type == type_CLOSED) continue; | 121 | - if(FD(m,fd)->type == type_CLOSED) continue; |
106 | + /* deferred closing fd */ | 122 | + /* deferred closing fd */ |
107 | + if(FD(m,fd)->type == type_CLOSED) | 123 | + if(FD(m,fd)->type == type_CLOSED) |
108 | + { | 124 | + { |
109 | + MIO_FREE_FD(m, fd); | 125 | + MIO_FREE_FD(m, fd); |
110 | + continue; | 126 | + continue; |
111 | + } | 127 | + } |
@@ -147,60 +163,60 @@ index 06f9e6e..5abf065 100644 | |||
147 | 163 | ||
148 | - pool_cleanup(zlist->p, free, zitem->jid); | 164 | - pool_cleanup(zlist->p, free, zitem->jid); |
149 | + pool_cleanup(zlist->p, jid_free, zitem->jid); | 165 | + pool_cleanup(zlist->p, jid_free, zitem->jid); |
150 | 166 | ||
151 | log_debug(ZONE, "jid item with value '%s'", jid_full(zitem->jid)); | 167 | log_debug(ZONE, "jid item with value '%s'", jid_full(zitem->jid)); |
152 | 168 | ||
153 | @@ -696,7 +696,7 @@ static mod_ret_t _privacy_in_sess(mod_instance_t mi, sess_t sess, pkt_t pkt) { | 169 | @@ -696,7 +696,7 @@ static mod_ret_t _privacy_in_sess(mod_instance_t mi, sess_t sess, pkt_t pkt) { |
154 | return -stanza_err_BAD_REQUEST; | 170 | return -stanza_err_BAD_REQUEST; |
155 | } | 171 | } |
156 | 172 | ||
157 | - pool_cleanup(p, free, zitem->jid); | 173 | - pool_cleanup(p, free, zitem->jid); |
158 | + pool_cleanup(p, jid_free, zitem->jid); | 174 | + pool_cleanup(p, jid_free, zitem->jid); |
159 | 175 | ||
160 | log_debug(ZONE, "jid item with value '%s'", jid_full(zitem->jid)); | 176 | log_debug(ZONE, "jid item with value '%s'", jid_full(zitem->jid)); |
161 | 177 | ||
162 | diff --git a/storage/authreg_pgsql.c b/storage/authreg_pgsql.c | 178 | diff --git a/storage/authreg_pgsql.c b/storage/authreg_pgsql.c |
163 | index 1f15e83..8d3cf88 100644 | 179 | index 1f15e83..cb68e7d 100644 |
164 | --- a/storage/authreg_pgsql.c | 180 | --- a/storage/authreg_pgsql.c |
165 | +++ b/storage/authreg_pgsql.c | 181 | +++ b/storage/authreg_pgsql.c |
166 | @@ -304,7 +304,7 @@ int _ar_pgsql_check_sql( authreg_t ar, char * sql, char * types ) { | 182 | @@ -304,7 +304,7 @@ int _ar_pgsql_check_sql( authreg_t ar, char * sql, char * types ) { |
167 | 183 | ||
168 | /** start me up */ | 184 | /** start me up */ |
169 | int ar_init(authreg_t ar) { | 185 | int ar_init(authreg_t ar) { |
170 | - char *host, *port, *dbname, *user, *pass; | 186 | - char *host, *port, *dbname, *user, *pass; |
171 | + char *host, *port, *dbname, *user, *pass, *conninfo; | 187 | + char *host, *port, *dbname, *user, *pass, *conninfo; |
172 | char *create, *select, *setpassword, *delete; | 188 | char *create, *select, *setpassword, *delete; |
173 | char *table, *username, *realm; | 189 | char *table, *username, *realm; |
174 | char *template; | 190 | char *template; |
175 | @@ -391,15 +391,22 @@ int ar_init(authreg_t ar) { | 191 | @@ -391,15 +391,22 @@ int ar_init(authreg_t ar) { |
176 | free(setpassword); | 192 | free(setpassword); |
177 | free(delete); | 193 | free(delete); |
178 | 194 | ||
179 | - host = config_get_one(ar->c2s->config, "authreg.pgsql.host", 0); | 195 | - host = config_get_one(ar->c2s->config, "authreg.pgsql.host", 0); |
180 | - port = config_get_one(ar->c2s->config, "authreg.pgsql.port", 0); | 196 | - port = config_get_one(ar->c2s->config, "authreg.pgsql.port", 0); |
181 | - dbname = config_get_one(ar->c2s->config, "authreg.pgsql.dbname", 0); | 197 | - dbname = config_get_one(ar->c2s->config, "authreg.pgsql.dbname", 0); |
182 | - user = config_get_one(ar->c2s->config, "authreg.pgsql.user", 0); | 198 | - user = config_get_one(ar->c2s->config, "authreg.pgsql.user", 0); |
183 | - pass = config_get_one(ar->c2s->config, "authreg.pgsql.pass", 0); | 199 | - pass = config_get_one(ar->c2s->config, "authreg.pgsql.pass", 0); |
184 | - | 200 | - |
185 | - log_debug( ZONE, "pgsql connecting as '%s' to database '%s' on %s:%s", user, dbname, host, port ); | 201 | - log_debug( ZONE, "pgsql connecting as '%s' to database '%s' on %s:%s", user, dbname, host, port ); |
186 | + conninfo = config_get_one(ar->c2s->config,"authreg.pgsql.conninfo",0); | 202 | + conninfo = config_get_one(ar->c2s->config,"authreg.pgsql.conninfo",0); |
187 | + if(conninfo) { | 203 | + if(conninfo) { |
188 | +conn = PQconnect(conninfo); | ||
189 | +/* don't log connection info for it can contain password */ | 204 | +/* don't log connection info for it can contain password */ |
190 | +log_debug( ZONE, "pgsql connecting to the databse"); | 205 | +log_debug( ZONE, "pgsql connecting to the databse"); |
206 | +conn = PQconnectdb(conninfo); | ||
191 | + }else{ | 207 | + }else{ |
192 | +/* compatibility settings */ | 208 | +/* compatibility settings */ |
193 | +host = config_get_one(ar->c2s->config, "authreg.pgsql.host", 0); | 209 | +host = config_get_one(ar->c2s->config, "authreg.pgsql.host", 0); |
194 | +port = config_get_one(ar->c2s->config, "authreg.pgsql.port", 0); | 210 | +port = config_get_one(ar->c2s->config, "authreg.pgsql.port", 0); |
195 | +dbname = config_get_one(ar->c2s->config, "authreg.pgsql.dbname", 0); | 211 | +dbname = config_get_one(ar->c2s->config, "authreg.pgsql.dbname", 0); |
196 | +user = config_get_one(ar->c2s->config, "authreg.pgsql.user", 0); | 212 | +user = config_get_one(ar->c2s->config, "authreg.pgsql.user", 0); |
197 | +pass = config_get_one(ar->c2s->config, "authreg.pgsql.pass", 0); | 213 | +pass = config_get_one(ar->c2s->config, "authreg.pgsql.pass", 0); |
198 | +log_debug( ZONE, "pgsql connecting as '%s' to database '%s' on %s:%s", user, dbname, host, port ); | 214 | +log_debug( ZONE, "pgsql connecting as '%s' to database '%s' on %s:%s", user, dbname, host, port ); |
199 | +conn = PQsetdbLogin(host, port, NULL, NULL, dbname, user, pass); | 215 | +conn = PQsetdbLogin(host, port, NULL, NULL, dbname, user, pass); |
200 | + } | 216 | + } |
201 | 217 | ||
202 | - conn = PQsetdbLogin(host, port, NULL, NULL, dbname, user, pass); | 218 | - conn = PQsetdbLogin(host, port, NULL, NULL, dbname, user, pass); |
203 | if(conn == NULL) { | 219 | if(conn == NULL) { |
204 | log_write(ar->c2s->log, LOG_ERR, "pgsql: unable to allocate database connection state"); | 220 | log_write(ar->c2s->log, LOG_ERR, "pgsql: unable to allocate database connection state"); |
205 | return 1; | 221 | return 1; |
206 | diff --git a/sx/sasl_gsasl.c b/sx/sasl_gsasl.c | 222 | diff --git a/sx/sasl_gsasl.c b/sx/sasl_gsasl.c |