/[LeafOK_CVS]/lbbs/src/article_post.c
ViewVC logotype

Diff of /lbbs/src/article_post.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.42 by sysadm, Mon Nov 10 14:22:18 2025 UTC Revision 1.44 by sysadm, Fri Dec 19 06:16:26 2025 UTC
# Line 6  Line 6 
6   * Copyright (C) 2004-2025  Leaflet <leaflet@leafok.com>   * Copyright (C) 2004-2025  Leaflet <leaflet@leafok.com>
7   */   */
8    
9    #ifdef HAVE_CONFIG_H
10    #include "config.h"
11    #endif
12    
13  #include "article_cache.h"  #include "article_cache.h"
14  #include "article_post.h"  #include "article_post.h"
15  #include "bbs.h"  #include "bbs.h"
# Line 53  int article_post(const SECTION_LIST *p_s Line 57  int article_post(const SECTION_LIST *p_s
57    
58          if (p_section == NULL || p_article_new == NULL)          if (p_section == NULL || p_article_new == NULL)
59          {          {
60                  log_error("NULL pointer error\n");                  log_error("NULL pointer error");
61          }          }
62    
63          if (!checkpriv(&BBS_priv, p_section->sid, S_POST))          if (!checkpriv(&BBS_priv, p_section->sid, S_POST))
# Line 73  int article_post(const SECTION_LIST *p_s Line 77  int article_post(const SECTION_LIST *p_s
77          p_editor_data = editor_data_load("");          p_editor_data = editor_data_load("");
78          if (p_editor_data == NULL)          if (p_editor_data == NULL)
79          {          {
80                  log_error("editor_data_load() error\n");                  log_error("editor_data_load() error");
81                  ret = -1;                  ret = -1;
82                  goto cleanup;                  goto cleanup;
83          }          }
# Line 125  int article_post(const SECTION_LIST *p_s Line 129  int article_post(const SECTION_LIST *p_s
129                                  {                                  {
130                                          if ((ret = check_badwords(p, '*')) < 0)                                          if ((ret = check_badwords(p, '*')) < 0)
131                                          {                                          {
132                                                  log_error("check_badwords(title) error\n");                                                  log_error("check_badwords(title) error");
133                                          }                                          }
134                                          else if (ret > 0)                                          else if (ret > 0)
135                                          {                                          {
# Line 219  int article_post(const SECTION_LIST *p_s Line 223  int article_post(const SECTION_LIST *p_s
223          content = malloc(ARTICLE_CONTENT_MAX_LEN);          content = malloc(ARTICLE_CONTENT_MAX_LEN);
224          if (content == NULL)          if (content == NULL)
225          {          {
226                  log_error("malloc(content) error: OOM\n");                  log_error("malloc(content) error: OOM");
227                  ret = -1;                  ret = -1;
228                  goto cleanup;                  goto cleanup;
229          }          }
# Line 227  int article_post(const SECTION_LIST *p_s Line 231  int article_post(const SECTION_LIST *p_s
231          len_content = editor_data_save(p_editor_data, content, ARTICLE_CONTENT_MAX_LEN);          len_content = editor_data_save(p_editor_data, content, ARTICLE_CONTENT_MAX_LEN);
232          if (len_content < 0)          if (len_content < 0)
233          {          {
234                  log_error("editor_data_save() error\n");                  log_error("editor_data_save() error");
235                  ret = -1;                  ret = -1;
236                  goto cleanup;                  goto cleanup;
237          }          }
238    
239          if (check_badwords(content, '*') < 0)          if (check_badwords(content, '*') < 0)
240          {          {
241                  log_error("check_badwords(content) error\n");                  log_error("check_badwords(content) error");
242                  ret = -1;                  ret = -1;
243                  goto cleanup;                  goto cleanup;
244          }          }
# Line 242  int article_post(const SECTION_LIST *p_s Line 246  int article_post(const SECTION_LIST *p_s
246          db = db_open();          db = db_open();
247          if (db == NULL)          if (db == NULL)
248          {          {
249                  log_error("db_open() error: %s\n", mysql_error(db));                  log_error("db_open() error: %s", mysql_error(db));
250                  ret = -1;                  ret = -1;
251                  goto cleanup;                  goto cleanup;
252          }          }
# Line 255  int article_post(const SECTION_LIST *p_s Line 259  int article_post(const SECTION_LIST *p_s
259    
260                  if (mysql_query(db, sql) != 0)                  if (mysql_query(db, sql) != 0)
261                  {                  {
262                          log_error("Query sign error: %s\n", mysql_error(db));                          log_error("Query sign error: %s", mysql_error(db));
263                          ret = -1;                          ret = -1;
264                          goto cleanup;                          goto cleanup;
265                  }                  }
266                  if ((rs = mysql_use_result(db)) == NULL)                  if ((rs = mysql_use_result(db)) == NULL)
267                  {                  {
268                          log_error("Get sign data failed\n");                          log_error("Get sign data failed");
269                          ret = -1;                          ret = -1;
270                          goto cleanup;                          goto cleanup;
271                  }                  }
# Line 282  int article_post(const SECTION_LIST *p_s Line 286  int article_post(const SECTION_LIST *p_s
286          // Begin transaction          // Begin transaction
287          if (mysql_query(db, "SET autocommit=0") != 0)          if (mysql_query(db, "SET autocommit=0") != 0)
288          {          {
289                  log_error("SET autocommit=0 error: %s\n", mysql_error(db));                  log_error("SET autocommit=0 error: %s", mysql_error(db));
290                  ret = -1;                  ret = -1;
291                  goto cleanup;                  goto cleanup;
292          }          }
293    
294          if (mysql_query(db, "BEGIN") != 0)          if (mysql_query(db, "BEGIN") != 0)
295          {          {
296                  log_error("Begin transaction error: %s\n", mysql_error(db));                  log_error("Begin transaction error: %s", mysql_error(db));
297                  ret = -1;                  ret = -1;
298                  goto cleanup;                  goto cleanup;
299          }          }
# Line 298  int article_post(const SECTION_LIST *p_s Line 302  int article_post(const SECTION_LIST *p_s
302          content_f = malloc((size_t)len_content * 2 + 1);          content_f = malloc((size_t)len_content * 2 + 1);
303          if (content_f == NULL)          if (content_f == NULL)
304          {          {
305                  log_error("malloc(content_f) error: OOM\n");                  log_error("malloc(content_f) error: OOM");
306                  ret = -1;                  ret = -1;
307                  goto cleanup;                  goto cleanup;
308          }          }
# Line 314  int article_post(const SECTION_LIST *p_s Line 318  int article_post(const SECTION_LIST *p_s
318          sql_content = malloc(SQL_BUFFER_LEN + (size_t)len_content * 2 + 1);          sql_content = malloc(SQL_BUFFER_LEN + (size_t)len_content * 2 + 1);
319          if (sql_content == NULL)          if (sql_content == NULL)
320          {          {
321                  log_error("malloc(sql_content) error: OOM\n");                  log_error("malloc(sql_content) error: OOM");
322                  ret = -1;                  ret = -1;
323                  goto cleanup;                  goto cleanup;
324          }          }
# Line 328  int article_post(const SECTION_LIST *p_s Line 332  int article_post(const SECTION_LIST *p_s
332    
333          if (mysql_query(db, sql_content) != 0)          if (mysql_query(db, sql_content) != 0)
334          {          {
335                  log_error("Add article content error: %s\n", mysql_error(db));                  log_error("Add article content error: %s", mysql_error(db));
336                  ret = -1;                  ret = -1;
337                  goto cleanup;                  goto cleanup;
338          }          }
# Line 349  int article_post(const SECTION_LIST *p_s Line 353  int article_post(const SECTION_LIST *p_s
353    
354          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
355          {          {
356                  log_error("Add article error: %s\n", mysql_error(db));                  log_error("Add article error: %s", mysql_error(db));
357                  ret = -1;                  ret = -1;
358                  goto cleanup;                  goto cleanup;
359          }          }
# Line 363  int article_post(const SECTION_LIST *p_s Line 367  int article_post(const SECTION_LIST *p_s
367    
368          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
369          {          {
370                  log_error("Update content error: %s\n", mysql_error(db));                  log_error("Update content error: %s", mysql_error(db));
371                  ret = -1;                  ret = -1;
372                  goto cleanup;                  goto cleanup;
373          }          }
# Line 377  int article_post(const SECTION_LIST *p_s Line 381  int article_post(const SECTION_LIST *p_s
381    
382                  if (mysql_query(db, sql) != 0)                  if (mysql_query(db, sql) != 0)
383                  {                  {
384                          log_error("Update exp error: %s\n", mysql_error(db));                          log_error("Update exp error: %s", mysql_error(db));
385                          ret = -1;                          ret = -1;
386                          goto cleanup;                          goto cleanup;
387                  }                  }
# Line 391  int article_post(const SECTION_LIST *p_s Line 395  int article_post(const SECTION_LIST *p_s
395    
396          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
397          {          {
398                  log_error("Add log error: %s\n", mysql_error(db));                  log_error("Add log error: %s", mysql_error(db));
399                  ret = -1;                  ret = -1;
400                  goto cleanup;                  goto cleanup;
401          }          }
# Line 399  int article_post(const SECTION_LIST *p_s Line 403  int article_post(const SECTION_LIST *p_s
403          // Commit transaction          // Commit transaction
404          if (mysql_query(db, "COMMIT") != 0)          if (mysql_query(db, "COMMIT") != 0)
405          {          {
406                  log_error("Commit transaction error: %s\n", mysql_error(db));                  log_error("Commit transaction error: %s", mysql_error(db));
407                  ret = -1;                  ret = -1;
408                  goto cleanup;                  goto cleanup;
409          }          }
# Line 448  int article_modify(const SECTION_LIST *p Line 452  int article_modify(const SECTION_LIST *p
452    
453          if (p_section == NULL || p_article == NULL)          if (p_section == NULL || p_article == NULL)
454          {          {
455                  log_error("NULL pointer error\n");                  log_error("NULL pointer error");
456          }          }
457    
458          if (p_article->excerption) // Modify is not allowed          if (p_article->excerption) // Modify is not allowed
# Line 464  int article_modify(const SECTION_LIST *p Line 468  int article_modify(const SECTION_LIST *p
468          db = db_open();          db = db_open();
469          if (db == NULL)          if (db == NULL)
470          {          {
471                  log_error("db_open() error: %s\n", mysql_error(db));                  log_error("db_open() error: %s", mysql_error(db));
472                  ret = -1;                  ret = -1;
473                  goto cleanup;                  goto cleanup;
474          }          }
# Line 477  int article_modify(const SECTION_LIST *p Line 481  int article_modify(const SECTION_LIST *p
481    
482          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
483          {          {
484                  log_error("Query article content error: %s\n", mysql_error(db));                  log_error("Query article content error: %s", mysql_error(db));
485                  ret = -1;                  ret = -1;
486                  goto cleanup;                  goto cleanup;
487          }          }
488          if ((rs = mysql_use_result(db)) == NULL)          if ((rs = mysql_use_result(db)) == NULL)
489          {          {
490                  log_error("Get article content data failed\n");                  log_error("Get article content data failed");
491                  ret = -1;                  ret = -1;
492                  goto cleanup;                  goto cleanup;
493          }          }
# Line 493  int article_modify(const SECTION_LIST *p Line 497  int article_modify(const SECTION_LIST *p
497                  content = malloc(ARTICLE_CONTENT_MAX_LEN);                  content = malloc(ARTICLE_CONTENT_MAX_LEN);
498                  if (content == NULL)                  if (content == NULL)
499                  {                  {
500                          log_error("malloc(content) error: OOM\n");                          log_error("malloc(content) error: OOM");
501                          ret = -1;                          ret = -1;
502                          goto cleanup;                          goto cleanup;
503                  }                  }
# Line 507  int article_modify(const SECTION_LIST *p Line 511  int article_modify(const SECTION_LIST *p
511                  p_editor_data = editor_data_load(content);                  p_editor_data = editor_data_load(content);
512                  if (p_editor_data == NULL)                  if (p_editor_data == NULL)
513                  {                  {
514                          log_error("editor_data_load(aid=%d, cid=%d) error\n", p_article->aid, atoi(row[0]));                          log_error("editor_data_load(aid=%d, cid=%d) error", p_article->aid, atoi(row[0]));
515                          ret = -1;                          ret = -1;
516                          goto cleanup;                          goto cleanup;
517                  }                  }
# Line 572  int article_modify(const SECTION_LIST *p Line 576  int article_modify(const SECTION_LIST *p
576          content = malloc(ARTICLE_CONTENT_MAX_LEN);          content = malloc(ARTICLE_CONTENT_MAX_LEN);
577          if (content == NULL)          if (content == NULL)
578          {          {
579                  log_error("malloc(content) error: OOM\n");                  log_error("malloc(content) error: OOM");
580                  ret = -1;                  ret = -1;
581                  goto cleanup;                  goto cleanup;
582          }          }
# Line 580  int article_modify(const SECTION_LIST *p Line 584  int article_modify(const SECTION_LIST *p
584          len_content = editor_data_save(p_editor_data, content, ARTICLE_CONTENT_MAX_LEN - LINE_BUFFER_LEN);          len_content = editor_data_save(p_editor_data, content, ARTICLE_CONTENT_MAX_LEN - LINE_BUFFER_LEN);
585          if (len_content < 0)          if (len_content < 0)
586          {          {
587                  log_error("editor_data_save() error\n");                  log_error("editor_data_save() error");
588                  ret = -1;                  ret = -1;
589                  goto cleanup;                  goto cleanup;
590          }          }
591    
592          if (check_badwords(content, '*') < 0)          if (check_badwords(content, '*') < 0)
593          {          {
594                  log_error("check_badwords(content) error\n");                  log_error("check_badwords(content) error");
595                  ret = -1;                  ret = -1;
596                  goto cleanup;                  goto cleanup;
597          }          }
# Line 606  int article_modify(const SECTION_LIST *p Line 610  int article_modify(const SECTION_LIST *p
610          db = db_open();          db = db_open();
611          if (db == NULL)          if (db == NULL)
612          {          {
613                  log_error("db_open() error: %s\n", mysql_error(db));                  log_error("db_open() error: %s", mysql_error(db));
614                  ret = -1;                  ret = -1;
615                  goto cleanup;                  goto cleanup;
616          }          }
# Line 614  int article_modify(const SECTION_LIST *p Line 618  int article_modify(const SECTION_LIST *p
618          // Begin transaction          // Begin transaction
619          if (mysql_query(db, "SET autocommit=0") != 0)          if (mysql_query(db, "SET autocommit=0") != 0)
620          {          {
621                  log_error("SET autocommit=0 error: %s\n", mysql_error(db));                  log_error("SET autocommit=0 error: %s", mysql_error(db));
622                  ret = -1;                  ret = -1;
623                  goto cleanup;                  goto cleanup;
624          }          }
625    
626          if (mysql_query(db, "BEGIN") != 0)          if (mysql_query(db, "BEGIN") != 0)
627          {          {
628                  log_error("Begin transaction error: %s\n", mysql_error(db));                  log_error("Begin transaction error: %s", mysql_error(db));
629                  ret = -1;                  ret = -1;
630                  goto cleanup;                  goto cleanup;
631          }          }
# Line 630  int article_modify(const SECTION_LIST *p Line 634  int article_modify(const SECTION_LIST *p
634          content_f = malloc((size_t)len_content * 2 + 1);          content_f = malloc((size_t)len_content * 2 + 1);
635          if (content_f == NULL)          if (content_f == NULL)
636          {          {
637                  log_error("malloc(content_f) error: OOM\n");                  log_error("malloc(content_f) error: OOM");
638                  ret = -1;                  ret = -1;
639                  goto cleanup;                  goto cleanup;
640          }          }
# Line 644  int article_modify(const SECTION_LIST *p Line 648  int article_modify(const SECTION_LIST *p
648          sql_content = malloc(SQL_BUFFER_LEN + (size_t)len_content * 2 + 1);          sql_content = malloc(SQL_BUFFER_LEN + (size_t)len_content * 2 + 1);
649          if (sql_content == NULL)          if (sql_content == NULL)
650          {          {
651                  log_error("malloc(sql_content) error: OOM\n");                  log_error("malloc(sql_content) error: OOM");
652                  ret = -1;                  ret = -1;
653                  goto cleanup;                  goto cleanup;
654          }          }
# Line 658  int article_modify(const SECTION_LIST *p Line 662  int article_modify(const SECTION_LIST *p
662    
663          if (mysql_query(db, sql_content) != 0)          if (mysql_query(db, sql_content) != 0)
664          {          {
665                  log_error("Add article content error: %s\n", mysql_error(db));                  log_error("Add article content error: %s", mysql_error(db));
666                  ret = -1;                  ret = -1;
667                  goto cleanup;                  goto cleanup;
668          }          }
# Line 675  int article_modify(const SECTION_LIST *p Line 679  int article_modify(const SECTION_LIST *p
679    
680          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
681          {          {
682                  log_error("Add article error: %s\n", mysql_error(db));                  log_error("Add article error: %s", mysql_error(db));
683                  ret = -1;                  ret = -1;
684                  goto cleanup;                  goto cleanup;
685          }          }
686    
687          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
688          {          {
689                  log_error("Update content error: %s\n", mysql_error(db));                  log_error("Update content error: %s", mysql_error(db));
690                  ret = -1;                  ret = -1;
691                  goto cleanup;                  goto cleanup;
692          }          }
# Line 695  int article_modify(const SECTION_LIST *p Line 699  int article_modify(const SECTION_LIST *p
699    
700          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
701          {          {
702                  log_error("Add log error: %s\n", mysql_error(db));                  log_error("Add log error: %s", mysql_error(db));
703                  ret = -1;                  ret = -1;
704                  goto cleanup;                  goto cleanup;
705          }          }
# Line 703  int article_modify(const SECTION_LIST *p Line 707  int article_modify(const SECTION_LIST *p
707          // Commit transaction          // Commit transaction
708          if (mysql_query(db, "COMMIT") != 0)          if (mysql_query(db, "COMMIT") != 0)
709          {          {
710                  log_error("Commit transaction error: %s\n", mysql_error(db));                  log_error("Commit transaction error: %s", mysql_error(db));
711                  ret = -1;                  ret = -1;
712                  goto cleanup;                  goto cleanup;
713          }          }
# Line 765  int article_reply(const SECTION_LIST *p_ Line 769  int article_reply(const SECTION_LIST *p_
769    
770          if (p_section == NULL || p_article == NULL)          if (p_section == NULL || p_article == NULL)
771          {          {
772                  log_error("NULL pointer error\n");                  log_error("NULL pointer error");
773          }          }
774    
775          if (!checkpriv(&BBS_priv, p_section->sid, S_POST))          if (!checkpriv(&BBS_priv, p_section->sid, S_POST))
# Line 786  int article_reply(const SECTION_LIST *p_ Line 790  int article_reply(const SECTION_LIST *p_
790          db = db_open();          db = db_open();
791          if (db == NULL)          if (db == NULL)
792          {          {
793                  log_error("db_open() error: %s\n", mysql_error(db));                  log_error("db_open() error: %s", mysql_error(db));
794                  ret = -1;                  ret = -1;
795                  goto cleanup;                  goto cleanup;
796          }          }
# Line 797  int article_reply(const SECTION_LIST *p_ Line 801  int article_reply(const SECTION_LIST *p_
801    
802          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
803          {          {
804                  log_error("Query article status error: %s\n", mysql_error(db));                  log_error("Query article status error: %s", mysql_error(db));
805                  ret = -1;                  ret = -1;
806                  goto cleanup;                  goto cleanup;
807          }          }
808          if ((rs = mysql_store_result(db)) == NULL)          if ((rs = mysql_store_result(db)) == NULL)
809          {          {
810                  log_error("Get article status data failed\n");                  log_error("Get article status data failed");
811                  ret = -1;                  ret = -1;
812                  goto cleanup;                  goto cleanup;
813          }          }
# Line 839  int article_reply(const SECTION_LIST *p_ Line 843  int article_reply(const SECTION_LIST *p_
843    
844          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
845          {          {
846                  log_error("Query article content error: %s\n", mysql_error(db));                  log_error("Query article content error: %s", mysql_error(db));
847                  ret = -1;                  ret = -1;
848                  goto cleanup;                  goto cleanup;
849          }          }
850          if ((rs = mysql_use_result(db)) == NULL)          if ((rs = mysql_use_result(db)) == NULL)
851          {          {
852                  log_error("Get article content data failed\n");                  log_error("Get article content data failed");
853                  ret = -1;                  ret = -1;
854                  goto cleanup;                  goto cleanup;
855          }          }
# Line 855  int article_reply(const SECTION_LIST *p_ Line 859  int article_reply(const SECTION_LIST *p_
859                  content = malloc(ARTICLE_CONTENT_MAX_LEN);                  content = malloc(ARTICLE_CONTENT_MAX_LEN);
860                  if (content == NULL)                  if (content == NULL)
861                  {                  {
862                          log_error("malloc(content) error: OOM\n");                          log_error("malloc(content) error: OOM");
863                          ret = -1;                          ret = -1;
864                          goto cleanup;                          goto cleanup;
865                  }                  }
# Line 863  int article_reply(const SECTION_LIST *p_ Line 867  int article_reply(const SECTION_LIST *p_
867                  content_f = malloc(ARTICLE_CONTENT_MAX_LEN);                  content_f = malloc(ARTICLE_CONTENT_MAX_LEN);
868                  if (content_f == NULL)                  if (content_f == NULL)
869                  {                  {
870                          log_error("malloc(content_f) error: OOM\n");                          log_error("malloc(content_f) error: OOM");
871                          ret = -1;                          ret = -1;
872                          goto cleanup;                          goto cleanup;
873                  }                  }
# Line 927  int article_reply(const SECTION_LIST *p_ Line 931  int article_reply(const SECTION_LIST *p_
931                                  {                                  {
932                                          if ((ret = check_badwords(p, '*')) < 0)                                          if ((ret = check_badwords(p, '*')) < 0)
933                                          {                                          {
934                                                  log_error("check_badwords(title) error\n");                                                  log_error("check_badwords(title) error");
935                                          }                                          }
936                                          else if (ret > 0)                                          else if (ret > 0)
937                                          {                                          {
# Line 1003  int article_reply(const SECTION_LIST *p_ Line 1007  int article_reply(const SECTION_LIST *p_
1007                  p_editor_data = editor_data_load(content);                  p_editor_data = editor_data_load(content);
1008                  if (p_editor_data == NULL)                  if (p_editor_data == NULL)
1009                  {                  {
1010                          log_error("editor_data_load(aid=%d, cid=%d) error\n", p_article->aid, atoi(row[0]));                          log_error("editor_data_load(aid=%d, cid=%d) error", p_article->aid, atoi(row[0]));
1011                          ret = -1;                          ret = -1;
1012                          goto cleanup;                          goto cleanup;
1013                  }                  }
# Line 1062  int article_reply(const SECTION_LIST *p_ Line 1066  int article_reply(const SECTION_LIST *p_
1066          content = malloc(ARTICLE_CONTENT_MAX_LEN);          content = malloc(ARTICLE_CONTENT_MAX_LEN);
1067          if (content == NULL)          if (content == NULL)
1068          {          {
1069                  log_error("malloc(content) error: OOM\n");                  log_error("malloc(content) error: OOM");
1070                  ret = -1;                  ret = -1;
1071                  goto cleanup;                  goto cleanup;
1072          }          }
# Line 1070  int article_reply(const SECTION_LIST *p_ Line 1074  int article_reply(const SECTION_LIST *p_
1074          len_content = editor_data_save(p_editor_data, content, ARTICLE_CONTENT_MAX_LEN);          len_content = editor_data_save(p_editor_data, content, ARTICLE_CONTENT_MAX_LEN);
1075          if (len_content < 0)          if (len_content < 0)
1076          {          {
1077                  log_error("editor_data_save() error\n");                  log_error("editor_data_save() error");
1078                  ret = -1;                  ret = -1;
1079                  goto cleanup;                  goto cleanup;
1080          }          }
1081    
1082          if (check_badwords(content, '*') < 0)          if (check_badwords(content, '*') < 0)
1083          {          {
1084                  log_error("check_badwords(content) error\n");                  log_error("check_badwords(content) error");
1085                  ret = -1;                  ret = -1;
1086                  goto cleanup;                  goto cleanup;
1087          }          }
# Line 1085  int article_reply(const SECTION_LIST *p_ Line 1089  int article_reply(const SECTION_LIST *p_
1089          db = db_open();          db = db_open();
1090          if (db == NULL)          if (db == NULL)
1091          {          {
1092                  log_error("db_open() error: %s\n", mysql_error(db));                  log_error("db_open() error: %s", mysql_error(db));
1093                  ret = -1;                  ret = -1;
1094                  goto cleanup;                  goto cleanup;
1095          }          }
# Line 1098  int article_reply(const SECTION_LIST *p_ Line 1102  int article_reply(const SECTION_LIST *p_
1102    
1103                  if (mysql_query(db, sql) != 0)                  if (mysql_query(db, sql) != 0)
1104                  {                  {
1105                          log_error("Query sign error: %s\n", mysql_error(db));                          log_error("Query sign error: %s", mysql_error(db));
1106                          ret = -1;                          ret = -1;
1107                          goto cleanup;                          goto cleanup;
1108                  }                  }
1109                  if ((rs = mysql_use_result(db)) == NULL)                  if ((rs = mysql_use_result(db)) == NULL)
1110                  {                  {
1111                          log_error("Get sign data failed\n");                          log_error("Get sign data failed");
1112                          ret = -1;                          ret = -1;
1113                          goto cleanup;                          goto cleanup;
1114                  }                  }
# Line 1125  int article_reply(const SECTION_LIST *p_ Line 1129  int article_reply(const SECTION_LIST *p_
1129          // Begin transaction          // Begin transaction
1130          if (mysql_query(db, "SET autocommit=0") != 0)          if (mysql_query(db, "SET autocommit=0") != 0)
1131          {          {
1132                  log_error("SET autocommit=0 error: %s\n", mysql_error(db));                  log_error("SET autocommit=0 error: %s", mysql_error(db));
1133                  ret = -1;                  ret = -1;
1134                  goto cleanup;                  goto cleanup;
1135          }          }
1136    
1137          if (mysql_query(db, "BEGIN") != 0)          if (mysql_query(db, "BEGIN") != 0)
1138          {          {
1139                  log_error("Begin transaction error: %s\n", mysql_error(db));                  log_error("Begin transaction error: %s", mysql_error(db));
1140                  ret = -1;                  ret = -1;
1141                  goto cleanup;                  goto cleanup;
1142          }          }
# Line 1141  int article_reply(const SECTION_LIST *p_ Line 1145  int article_reply(const SECTION_LIST *p_
1145          content_f = malloc((size_t)len_content * 2 + 1);          content_f = malloc((size_t)len_content * 2 + 1);
1146          if (content_f == NULL)          if (content_f == NULL)
1147          {          {
1148                  log_error("malloc(content_f) error: OOM\n");                  log_error("malloc(content_f) error: OOM");
1149                  ret = -1;                  ret = -1;
1150                  goto cleanup;                  goto cleanup;
1151          }          }
# Line 1157  int article_reply(const SECTION_LIST *p_ Line 1161  int article_reply(const SECTION_LIST *p_
1161          sql_content = malloc(SQL_BUFFER_LEN + (size_t)len_content * 2 + 1);          sql_content = malloc(SQL_BUFFER_LEN + (size_t)len_content * 2 + 1);
1162          if (sql_content == NULL)          if (sql_content == NULL)
1163          {          {
1164                  log_error("malloc(sql_content) error: OOM\n");                  log_error("malloc(sql_content) error: OOM");
1165                  ret = -1;                  ret = -1;
1166                  goto cleanup;                  goto cleanup;
1167          }          }
# Line 1171  int article_reply(const SECTION_LIST *p_ Line 1175  int article_reply(const SECTION_LIST *p_
1175    
1176          if (mysql_query(db, sql_content) != 0)          if (mysql_query(db, sql_content) != 0)
1177          {          {
1178                  log_error("Add article content error: %s\n", mysql_error(db));                  log_error("Add article content error: %s", mysql_error(db));
1179                  ret = -1;                  ret = -1;
1180                  goto cleanup;                  goto cleanup;
1181          }          }
# Line 1193  int article_reply(const SECTION_LIST *p_ Line 1197  int article_reply(const SECTION_LIST *p_
1197    
1198          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
1199          {          {
1200                  log_error("Add article error: %s\n", mysql_error(db));                  log_error("Add article error: %s", mysql_error(db));
1201                  ret = -1;                  ret = -1;
1202                  goto cleanup;                  goto cleanup;
1203          }          }
# Line 1210  int article_reply(const SECTION_LIST *p_ Line 1214  int article_reply(const SECTION_LIST *p_
1214    
1215          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
1216          {          {
1217                  log_error("Update topic article error: %s\n", mysql_error(db));                  log_error("Update topic article error: %s", mysql_error(db));
1218                  ret = -1;                  ret = -1;
1219                  goto cleanup;                  goto cleanup;
1220          }          }
# Line 1222  int article_reply(const SECTION_LIST *p_ Line 1226  int article_reply(const SECTION_LIST *p_
1226    
1227          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
1228          {          {
1229                  log_error("Update content error: %s\n", mysql_error(db));                  log_error("Update content error: %s", mysql_error(db));
1230                  ret = -1;                  ret = -1;
1231                  goto cleanup;                  goto cleanup;
1232          }          }
# Line 1235  int article_reply(const SECTION_LIST *p_ Line 1239  int article_reply(const SECTION_LIST *p_
1239    
1240          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
1241          {          {
1242                  log_error("Read reply info error: %s\n", mysql_error(db));                  log_error("Read reply info error: %s", mysql_error(db));
1243                  ret = -1;                  ret = -1;
1244                  goto cleanup;                  goto cleanup;
1245          }          }
1246          if ((rs = mysql_store_result(db)) == NULL)          if ((rs = mysql_store_result(db)) == NULL)
1247          {          {
1248                  log_error("Get reply info failed\n");                  log_error("Get reply info failed");
1249                  ret = -1;                  ret = -1;
1250                  goto cleanup;                  goto cleanup;
1251          }          }
# Line 1263  int article_reply(const SECTION_LIST *p_ Line 1267  int article_reply(const SECTION_LIST *p_
1267    
1268                  if (mysql_query(db, sql) != 0)                  if (mysql_query(db, sql) != 0)
1269                  {                  {
1270                          log_error("Insert msg error: %s\n", mysql_error(db));                          log_error("Insert msg error: %s", mysql_error(db));
1271                          ret = -1;                          ret = -1;
1272                          goto cleanup;                          goto cleanup;
1273                  }                  }
# Line 1280  int article_reply(const SECTION_LIST *p_ Line 1284  int article_reply(const SECTION_LIST *p_
1284    
1285                  if (mysql_query(db, sql) != 0)                  if (mysql_query(db, sql) != 0)
1286                  {                  {
1287                          log_error("Update exp error: %s\n", mysql_error(db));                          log_error("Update exp error: %s", mysql_error(db));
1288                          ret = -1;                          ret = -1;
1289                          goto cleanup;                          goto cleanup;
1290                  }                  }
# Line 1294  int article_reply(const SECTION_LIST *p_ Line 1298  int article_reply(const SECTION_LIST *p_
1298    
1299          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
1300          {          {
1301                  log_error("Add log error: %s\n", mysql_error(db));                  log_error("Add log error: %s", mysql_error(db));
1302                  ret = -1;                  ret = -1;
1303                  goto cleanup;                  goto cleanup;
1304          }          }
# Line 1302  int article_reply(const SECTION_LIST *p_ Line 1306  int article_reply(const SECTION_LIST *p_
1306          // Commit transaction          // Commit transaction
1307          if (mysql_query(db, "COMMIT") != 0)          if (mysql_query(db, "COMMIT") != 0)
1308          {          {
1309                  log_error("Commit transaction error: %s\n", mysql_error(db));                  log_error("Commit transaction error: %s", mysql_error(db));
1310                  ret = -1;                  ret = -1;
1311                  goto cleanup;                  goto cleanup;
1312          }          }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1