1 |
- |
2 |
02 10:21:00 <schmorp> ich wüsste nicht, wie man es anders machen kann |
3 |
02 10:21:11 <schmorp> ach ja |
4 |
02 10:21:23 <schmorp> man muss auch nen "custom"-read prependen/appenden können |
5 |
02 10:21:33 <schmorp> außerdem wäre ein resource-limit nicht dumm |
6 |
02 10:21:34 <schmorp> also |
7 |
02 10:21:38 <schmorp> "maximal 16mb zeilen lesen" |
8 |
02 10:21:41 <schmorp> oder allgemein |
9 |
02 10:21:47 <schmorp> "rbuf darf nie > 16mb werden" |
10 |
02 10:22:01 <elmex> ja, das waehre praktisch |
11 |
02 10:22:06 <schmorp> praktisch nicht |
12 |
02 10:22:08 <schmorp> aber wichtig :) |
13 |
02 10:22:11 <elmex> jo |
14 |
02 10:22:19 <schmorp> für die sicherheit |
15 |
02 10:22:23 <schmorp> prkatisch ists eher im wege |
16 |
02 10:22:25 <elmex> wenn rbuf > 16mb dann liest er nicht mehr? oder was soll dann passieren? |
17 |
02 10:23:00 <elmex> nicht mehr lesen waehre schwierig, da muesste man den watcher entfernen und wieder reinstallieren wenn der |
18 |
buffer leerer is |
19 |
02 10:23:20 <schmorp> wozu? |
20 |
02 10:23:33 <schmorp> leerer(?) |
21 |
02 10:23:39 <schmorp> wie kann er dnen leerer werden? |
22 |
02 10:23:42 <elmex> eben :) |
23 |
02 10:23:53 <elmex> wenn die daten verarbeitet wurden und jemand den buffer leere gemacht hat |
24 |
02 10:23:57 <schmorp> ah, das ist ein verständnisproblem |
25 |
02 10:24:01 <schmorp> es geht um harte fehler |
26 |
02 10:24:04 <schmorp> sicherheit! |
27 |
02 10:24:06 <schmorp> denial-of-service |
28 |
02 10:24:14 <schmorp> nicht um speicherersparnis |
29 |
02 10:24:21 <schmorp> wenn du sagst, der rbug darf nie >16mb werden |
30 |
02 10:24:29 <schmorp> dann ist es ein harter fehler/verbindungssbbaruch |
31 |
02 10:24:31 <schmorp> wenbne r größer wird |
32 |
02 10:24:33 <schmorp> dananch ist ende |
33 |
02 10:24:38 <elmex> hmmm, also waehre das beste ein extra callback fuer den fall? und das default evrhalten is ein error und d |
34 |
ann ->close ? |
35 |
02 10:24:46 <schmorp> ich würde sagen on_error |
36 |
02 10:24:48 <schmorp> wie alles andere |
37 |
02 10:24:50 <elmex> hm, ok |
38 |
02 10:24:57 <schmorp> ein fehler ist fatal |
39 |
02 10:24:58 <elmex> sie koennen das limit ja einstellen |
40 |
02 10:25:03 <schmorp> kannst $! auf ENOSPC setzen |
41 |
02 10:25:06 <elmex> ok |
42 |
02 10:25:11 <schmorp> ja, es kann ja per default aus sein von mir aus |
43 |
|
44 |
- und ganz wichtig: generell die api fixen |
45 |
|
46 |
- |
47 |
02 10:27:36 <schmorp> reply 1 |
48 |
02 10:27:38 <schmorp> reply 1, zweiter teil |
49 |
02 10:27:39 <schmorp> reply 2 |
50 |
02 10:27:42 <elmex> ahja |
51 |
02 10:27:46 <elmex> genau |
52 |
02 10:27:48 <schmorp> dazu musst du den read vor den reply 2 quetschen |
53 |
02 10:27:54 <elmex> also prependen |
54 |
02 10:27:56 <schmorp> ja |
55 |
02 10:28:02 <elmex> ja, ich dachte halt an den fall: |
56 |
02 10:28:03 <schmorp> eventuell kann man shift/push nehmen als namen |
57 |
02 10:28:19 <schmorp> ausserdem muss es noch einen generic-callback geben |
58 |
02 10:28:28 <schmorp> die frage ist, wie man "progress" feststellt |
59 |
02 10:28:31 <elmex> reply 1, reply 2, und bei reply 1 wird ein zweiter request gemacht wo reply 3 kommt, und der read-cb fuer |
60 |
reply 3 muss halt hinter reply 2 |
61 |
02 10:28:37 <schmorp> man könnte z.b. die länge des rbufs vor und anch dme callback checken |
62 |
02 10:28:38 <elmex> in dem fall will man appenden |
63 |
02 10:28:42 <schmorp> wenn sie sich ändert, mach weiter |
64 |
02 10:28:54 <schmorp> elmex: genau |
65 |
02 10:29:07 <schmorp> elmex: deshalb gehen auch keien schemata wie "im callback prependen, ausserhalb appenden" |
66 |
02 10:29:18 <elmex> jo |
67 |
02 10:29:23 <elmex> das is halt protokollabhaengig |
68 |
02 10:29:34 <schmorp> igentlich nicht so |
69 |
02 10:29:42 <schmorp> es hängt davon ab, was dein programm macht |
70 |
02 10:29:45 <schmorp> vom protkoll weniger |
71 |
02 10:29:46 <elmex> was meinst du mit einem generic callback? |
72 |
02 10:29:48 <elmex> ja, stimmt |
73 |
02 10:29:49 <schmorp> denn das ist hier immer tcp |
74 |
02 10:29:57 <schmorp> sprich, reioehenfolge bleibt reihenfolge |
75 |
02 10:30:21 <schmorp> vielleicht wäre es auch nett, einen default-read-callback zu haben |
76 |
02 10:30:28 <schmorp> aber ich denke, das kann on_read erledigen |
77 |
02 10:30:33 <schmorp> d.gh. die queue hat vorrang vor on_read |
78 |
02 10:30:40 <schmorp> aber wenn die queu leer ist, wird on_read aufgerufen |
79 |
02 10:30:44 <elmex> jo |
80 |
02 10:30:45 <schmorp> undd as kannd ann z.b. nichts tun |
81 |
02 10:30:48 <schmorp> außer ein realine pushen |
82 |
02 10:30:54 <schmorp> bzw. prependen :/ |
83 |
02 10:31:04 <elmex> hmm |
84 |
02 10:31:08 <schmorp> alsowas, prepend/append doer shift/push |
85 |
02 10:31:21 <schmorp> unshift/push natürlich |
86 |
02 10:31:31 <elmex> was soll der default callback machen? |
87 |
02 10:31:40 <elmex> ich meine, bisher tut on_read einfach in rbuf lesen |
88 |
02 10:31:41 <schmorp> welcher default-callback? |
89 |
02 10:31:49 <elmex> default-read-callback |
90 |
02 10:31:56 <schmorp> es kann keinen geben? |
91 |
02 10:31:57 <elmex> ich kann dir im mom nich ganz forlgen :) |
92 |
02 10:31:59 <schmorp> was kann der auch tun? |
93 |
02 10:32:04 <schmorp> du hats ne socket |
94 |
02 10:32:06 <schmorp> auf der kommen daten |
95 |
02 10:32:10 <schmorp> aber niemand verarbeiotet sie |
96 |
02 10:32:14 <schmorp> trottzdem pufferst du sie |
97 |
02 10:32:16 <schmorp> das macht keinen sinn |
98 |
02 10:32:22 + Muttley joined #schmorp (JOIN, #schmorp) |
99 |
02 10:32:23 <elmex> hmm, das tu ich auch net |
100 |
02 10:32:24 <schmorp> es _muss_ immer einen callback geben für lesedaten |
101 |
02 10:32:25 <schmorp> ODER |
102 |
02 10:32:29 <Muttley> Morning |
103 |
02 10:32:30 <schmorp> er darf nicht lesen |
104 |
02 10:32:34 <schmorp> Muttley: hi pauk |
105 |
02 10:32:40 <schmorp> Muttley: didn't we want a firmware today? |
106 |
02 10:32:44 <schmorp> (sometime) |
107 |
02 10:32:54 <Muttley> If you would be so kind, that would be great :) |
108 |
02 10:32:56 <elmex> schmorp: bisher machts ::Handle halt so, das er nicht liest wenn niemand einen callback fuers lesen instal liert hat. ich dachte das sollte ruhig weiter so sein |
109 |
02 10:33:00 <schmorp> Muttley: right now? |
110 |
02 10:33:13 <schmorp> elmex: ja, das ist gut |
111 |
02 10:33:19 <schmorp> elmex: aber dann gibts auch keinen default-fall |
112 |
|
113 |
02 11:43:38 <schmorp> $socket->push_read_line ([$sep, ]$cb) |
114 |
02 11:43:49 <schmorp> oder read-handler müsste dann "nur" folgendes machen: |
115 |
02 11:43:51 <schmorp> sysread |
116 |
02 11:43:58 <schmorp> if (!queue) on_read |
117 |
02 11:44:00 <schmorp> else |
118 |
02 11:44:07 <schmorp> while() |
119 |
02 11:44:14 <schmorp> queu[0]->callback |
120 |
02 11:44:22 <schmorp> if (!progress) |
121 |
02 11:44:30 <schmorp> if (eof-föag) on_eof; |
122 |
02 11:44:32 <schmorp> last |
123 |
02 11:44:45 <schmorp> shift queue |
124 |
02 11:44:52 <schmorp> scheiss python-whitespace-indenting |
125 |
|