-
Notifications
You must be signed in to change notification settings - Fork 0
/
read2ch.h
261 lines (207 loc) · 9.26 KB
/
read2ch.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
/* read2ch.h */
#ifndef READ2CH_H__
#define READ2CH_H__
#define CGINAME "read.so"
#define CGIVER "read.so ver5.27+ (04/03/06-)"
#define RES_YELLOW 900
#define RES_REDZONE 950
#define RES_RED 1000
#define RES_IMODE 10
#define RES_NORMAL 100
#define MAX_FILESIZE (8192 * 64)
#define SIZE_BUF 0xa000
/* 英語版にする(r2chhtml.h ではなく r2chhtml_en.h がインクルードされる) */
/* #define ENGLISH */
/* read.so から TZ 環境変数を操作すると,httpd プロセスの環境を
いじることになる.それはちょっと恐ろしいので,この部分のコードは外した.
TZ は httpd 起動時に設定おながいします */
/* #define CONFIG_TIMEZONE "JST-9" */
#define LIMIT_PM 22
#define LIMIT_AM 3
#define DAT_DIR "../%.256s/dat/"
#define TEMP_DIR "../%.50s/temp/"
#define KAKO_DIR "../%.50s/kako/"
/* 混雑時間帯に、>>000 形式のレスへのリンクを削除する */
#define LINKTAGCUT (1)
/* always LINKTAGCUT */
/* #define NORMAL_TAGCUT */
/* 一番最後に、「更新したレスを表示」のリンクを表示する */
#define RELOADLINK
/* nofirst → n など、短縮形で指示できるようにする */
#define GSTR2
/* teri タイプのログを読み込む */
#define TYPE_TERI
/* 書き込み直後のリロードを防止する */
#define PREVENTRELOAD
/* 上記の PREVENTRELOAD を指定したときに、更新されていても 304 を返す秒数 */
#define FORCE_304_TIME 60
/* 圧縮は mod_deflate に全てお任せ.
・従来の gzip/zlib 操作周りに MT-unsafe なコードがあり,
それを MT-safe 化する手間がかかる.
・そもそも mod_cgidso を利用できる環境であれば
圧縮モジュールの利用にも問題ないはずであり,
そのような手間をかけるほどのメリットを見出せない.
ということで,かつての8月危機の際の転送量削減の
大きな柱の1つであった read.cgi での自力圧縮の
コードは,まことに勝手ながら外させて頂きますた... */
/* #define GZIP
#define ZLIB
#define NN4_LM_WORKAROUND
#define CHECK_MOD_GZIP */
/* raw=xxx.yyyを有効にする。 xxx=最終レス番号, yyy=そのときのサイズ。
* 出力の一行目はステータス:
* [+OK size/maxK]
* 2行目以降はxxx番以降の差分データ。sizeは差分のデータサイズ。
* maxはMAX_FILESIZE/1024。
* [-INCR size/maxK] (yyy が一致していなかった場合に起きる; あぼーんの可能性?)
* 2行目以降はスレのデータ全部。sizeはデータサイズ。
* maxはMAX_FILESIZE/1024。
* [-ERR string]
* なんかエラーが起きた。stringはエラーの内容。
* "このスレッド大きすぎます。"
* "そんな板orスレッドないです。"
* "過去ログ倉庫で発見 %s" %sは相対パスで.datの位置を表す。
* "html化待ち"
* "メモリの確保に失敗しました。"
* "調整中。。。"
* "なんか不調です。"
* リクエストにIf-Modified-Sinceが無く、
* 取得済みサイズとdatのファイルサイズが一致した場合、非圧縮の
* [+OK 0/maxK]
* の一行だけが返り、LastModified,Content-Length,Cotent-Encoding等は含まれない
*/
#define RAWOUT
/* raw=0.0のリクエスト時、st=nn, to=nn, ls=nnを参照する
* ・有効な場合にはステータスが以下のように変わる
* [+PARCIAL size/maxK]
* ・またステータス行に、以下の情報がTAB区切りで加えられる。
* Range:n1-n2/n3
* 送信バイトの位置情報。
* HTTP レスポンスヘッダのContent-Range: bytes 以下と同じもの。
* Res:n1-n2/n3
* 送信レスのレス番号情報。
* Rangeと異なり、1から始まり最後まで送った場合はn2==n3となる。
* ・その他、以下の情報が含まれるようになる可能性がある。
* Status:Stopped
* スレッドストップがかかったと判定された場合。
* Location:temp/
* datはhtml化を待っている状態の過去ログである(書きこめない)
* Location:kako/
* datはhtml化されている過去ログである(書きこめない)
*/
#define RAWOUT_PARTIAL
/* raw=0.0でbbsとkeyが指定されていない時、
* dat=board/key.size形式での複数のリクエストを有効にする
* 受け付けるのは差分のみで、sizeが0の場合は
* +OK 0/maxK
* の行を返す。
* 同じ板が連続する時はboard/を省略可能。
* あぼーん時の返信はKatjusha_DLL_REPLYに倣う。
*
* 返信のステータス行に以下の情報が追加される場合がある。
* Request:board/key.size
* 個々のリクエストをそのまま返す。
* LastModify:time
* Last-Modified:で返すべき値をtime()値のまま返す。
*
* また、-ERR は
* -ERR 200 そんな板orスレッド・・・
* 等として返される。
*/
#define RAWOUT_MULTI
#define RAWOUT_MULTI_MAX 50
/* mmap(2) を活用。
資源の開放は積極的にサボりたい。 */
#define USE_MMAP
/* munmap(2)等の明示的な資源開放 */
/* #undef EXPLICIT_RELEASE */
/* read.cgi側によるindexの実装(experimental) */
/* #define USE_INDEX */
/** Header custumization **/
/* 「全部読む」をつける */
/* #define ALL_ANCHOR 常にON */
/* pageの topに、CHUNK_NUM番ごとに区切ったレスへの anchorをつける
*/
#define CHUNK_ANCHOR
#define CHUNK_NUM 100
/* CUUNK_ANCHOR使用時に>>nnをCHUNKごとのリンクにする */
/* #define USE_CHUNK_LINK */
/* 「最新レス LATEST_NUM」をつける */
/* #define LATEST_ANCHOR 常にON */
#define LATEST_NUM 50
/* sageレスのとき、名前を太字にしない */
/* #define SAGE_IS_PLAIN */
/* スレダイジェスト出力パラメータ
本来ならばどこかから取得できる? */
#define N_INDEX_DIGESTS 10
#define N_INDEX_THREADS 30
/* 板毎に設定が書いてあるファイル、使うけ? */
#define USE_SETTING_FILE
#define SETTING_FILE_NAME "SETTING_R.TXT"
/* 設定にSETTINGファイルではなく、SPECIAL_SETTINGを利用する */
#define USE_INTERNAL_SETTINGS
#define SPECIAL_SETTING \
{ "saku", "LINKTAGCUT=0" "\n" }, \
/* { "dancesite", "FORCE_304_TIME=3" "\n" }, */
/* "名前:"を非表示にする */
#define CUT_NAME_STRING
/* "投稿日:"を非表示にする */
#define CUT_DATE_STRING
/* <a name=...>をつける。これをつけないときはCHUNK_ANCHORも無効にしたほうが良い */
/* #define CREATE_NAME_ANCHOR */
/* nofirst=trueを短縮形にする。bbs.cgiの出力と同一形式が望ましい */
/* #define NO_FIRST "&n=t" */
/* 「大きすぎます」の警告を出すまでのサイズ(KB単位)
MAX_FILESIZE - CAUTION_FILESIZE*1024 を超えたら警告
これが未定義なら、警告は出さない */
#define CAUTION_FILESIZE 16
/* デバッグ用
#define MAX_FILESIZE_BUSY (MAX_FILESIZE - 64 * 1024) */
/* スレッドストップ扱いにするサイズ(KB単位)
MAX_FILESIZE - WRITESTOP_FILESIZE*1024 を超えたらFORM等を出さない
これが未定義なら、大きくてもスレッドストップ扱いはしない */
#define WRITESTOP_FILESIZE 5
/* select form形式で CHUNKED_ANCHORを表示する */
/* 「掲示板に戻る」「レスを全部」「最新レス」との統一が取れていない */
/* #define CHUNKED_ANCHOR_WITH_FORM */
/* 1- 51- ...形式のリンクを上下に分けて表示する */
/* #define SEPARATE_CHUNK_ANCHOR */
/* 前50 次50 を上下につける。50=CHUNK_NUM */
#define PREV_NEXT_ANCHOR
/* かちゅーしゃによるアクセスを拒絶する */
#define Katjusha_Beta_kisei
/* かちゅ~しゃgzip化DLLのリクエストに応答する
* raw=.nnn形式のリクエストを受け付け、
* あぼーんが想定される場合、
* [-ERR どこかであぼーんがあったみたいです。]
* を返し、本文の再送は行わない。
*/
#define Katjusha_DLL_REPLY
/* 名前の緑表示をCSSを使って表示 */
/* #define USE_CSS */
/* 混雑時間帯に、>>nn形式のリンクから参照された場合に
出力htmlから余分なリンク等を省く */
#define REFERDRES_SIMPLE /**/
/* 混雑時間帯にレス本文内のURLをリンク化しないようにする */
/* #define NO_LINK_URL_BUSY */
/* ETagを出力する */
/* #define PUT_ETAG */
/* dat落ち、過去ログをread.cgiで読む */
/* #define READ_KAKO */
/* #define READ_TEMP */
/* #define AUTO_KAKO */
/* READ_KAKOで過去ログに誘導するときに範囲指定を継承する */
#define READ_KAKO_THROUGH
/* AUTO_KAKOで過去ログを取得/閲覧できる制限を設定
0 = RAWモード時のみ、temp/,kako/どちらのdatも取得可能
1 = RAWモード以外は、temp/のみ閲覧可能
2 = RAWモード以外でも、temp/,kako/どちらも閲覧可能 */
#define AUTO_KAKO_MODE 0
/* ログ形式を実行時に判別する。READ_KAKO/AUTO_KAKO用 */
/* #define AUTO_LOGTYPE */
/* 名前末尾・メール末尾・<br>タグ前・レス末尾の空白を
(可能なら)全て削除する */
#define CUT_TAIL_BLANK
/* '<',"http://"の直前の文字を調べ、必要ならば空白を加える。 */
/* #define STRICT_ILLEGAL_CHECK */
#endif /* READ2CH_H__ */