]> git.pld-linux.org Git - packages/samba.git/blob - samba-case_insensitive_sql_operator.patch
- fix psql passdb
[packages/samba.git] / samba-case_insensitive_sql_operator.patch
1 diff -urN samba-3.0.8pre1/source/passdb/pdb_mysql.c samba-ziew/source/passdb/pdb_mysql.c
2 --- samba-3.0.8pre1/source/passdb/pdb_mysql.c   Wed Sep  8 22:49:59 2004
3 +++ samba-ziew/source/passdb/pdb_mysql.c        Mon Nov  1 15:55:13 2004
4 @@ -132,7 +132,7 @@
5                 return NT_STATUS_INVALID_HANDLE;
6         }
7  
8 -       query = sql_account_query_select(data->location, update, SQL_SEARCH_NONE, NULL);
9 +       query = sql_account_query_select(data->location, update, SQL_SEARCH_NONE, NULL, "=");
10  
11         ret = mysql_query(data->handle, query);
12         SAFE_FREE(query);
13 @@ -230,7 +230,7 @@
14                 return NT_STATUS_INVALID_PARAMETER;
15         }
16  
17 -       query = sql_account_query_select(data->location, True, field, esc_sname);
18 +       query = sql_account_query_select(data->location, True, field, esc_sname, "=");
19  
20         SAFE_FREE(esc_sname);
21  
22 @@ -344,7 +344,7 @@
23  
24         SAFE_FREE(tmp_sname);
25  
26 -       query = sql_account_query_delete(data->location, esc);
27 +       query = sql_account_query_delete(data->location, esc, "=");
28  
29         SAFE_FREE(esc);
30  
31 diff -urN samba-3.0.8pre1/source/passdb/pdb_pgsql.c samba-ziew/source/passdb/pdb_pgsql.c
32 --- samba-3.0.8pre1/source/passdb/pdb_pgsql.c   Wed Sep  8 22:49:59 2004
33 +++ samba-ziew/source/passdb/pdb_pgsql.c        Mon Nov  1 15:55:13 2004
34 @@ -125,7 +125,7 @@
35    
36    SET_DATA( data, methods ) ;
37    
38 -  query = sql_account_query_select(data->location, update, SQL_SEARCH_NONE, NULL);
39 +  query = sql_account_query_select(data->location, update, SQL_SEARCH_NONE, NULL, "ILIKE");
40    
41    /* Do it */
42    DEBUG( 5, ("Executing query %s\n", query) ) ;
43 @@ -228,7 +228,7 @@
44    //tmp_sname = smb_xstrdup(sname);
45    PQescapeString( esc, sname, strlen(sname) ) ;
46    
47 -  query = sql_account_query_select(data->location, True, field, esc);
48 +  query = sql_account_query_select(data->location, True, field, esc, "ILIKE" );
49    
50    /* Do it */
51    DEBUG( 5, ("Executing query %s\n", query) ) ;
52 @@ -327,7 +327,7 @@
53    
54    PQescapeString( esc, sname, strlen(sname) ) ;
55    
56 -  query = sql_account_query_delete(data->location, esc);
57 +  query = sql_account_query_delete(data->location, esc, "ILIKE");
58    
59    /* Do it */
60    result = PQexec( data->handle, query ) ;
61 diff -urN samba-3.0.8pre1/source/passdb/pdb_sql.c samba-ziew/source/passdb/pdb_sql.c
62 --- samba-3.0.8pre1/source/passdb/pdb_sql.c     Wed Sep  8 22:49:59 2004
63 +++ samba-ziew/source/passdb/pdb_sql.c  Mon Nov  1 15:55:13 2004
64 @@ -181,7 +181,7 @@
65         return (const char *)v;
66  }
67  
68 -char *sql_account_query_select(const char *data, BOOL update, enum sql_search_field field, const char *value)
69 +char *sql_account_query_select(const char *data, BOOL update, enum sql_search_field field, const char *value, const char * eq_op)
70  {
71         const char *field_string;
72         char *query;
73 @@ -204,7 +204,7 @@
74         }
75  
76         asprintf(&query,
77 -                        "SELECT %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s FROM %s WHERE %s = '%s'",
78 +                        "SELECT %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s FROM %s WHERE %s %s '%s'",
79                          config_value_read(data, "logon time column",
80                                                            CONFIG_LOGON_TIME_DEFAULT),
81                          config_value_read(data, "logoff time column",
82 @@ -264,19 +264,19 @@
83                          config_value_read(data, "unknown 6 column",
84                                                            CONFIG_UNKNOWN_6_DEFAULT),
85                          config_value(data, "table", CONFIG_TABLE_DEFAULT), 
86 -                        field_string, value
87 +                        field_string, eq_op, value
88                                  );
89          return query;
90  }
91  
92 -char *sql_account_query_delete(const char *data, const char *esc) 
93 +char *sql_account_query_delete(const char *data, const char *esc, const char *eq_op) 
94  {
95         char *query;
96         
97 -       asprintf(&query, "DELETE FROM %s WHERE %s = '%s'",
98 +       asprintf(&query, "DELETE FROM %s WHERE %s %s '%s'",
99                          config_value(data, "table", CONFIG_TABLE_DEFAULT),
100                          config_value_read(data, "username column",
101 -                                                          CONFIG_USERNAME_DEFAULT), esc);
102 +                                                          CONFIG_USERNAME_DEFAULT), eq_op, esc);
103         return query;
104  }
105  
This page took 0.03982 seconds and 4 git commands to generate.