Commit Graph

5706 Commits

Author SHA1 Message Date
Oliver Tappe
9f209e77b8 Fix minor issue in BString I noticed when researching #7226:
* if _MakeWritable() fails, LockBuffer() must return NULL, not what
  happens to be in fPrivateData

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-16 10:11:49 +00:00
Alex Wilson
71947e478c When unarchiving a BSplitLayout, initialize our members properly so that even if unarchiving fails, the object is in a usable state. Fixes CID 10045.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 20:34:47 +00:00
Oliver Tappe
f5644b8d3b * prefer HashSet and HashMap to respective std-classes where possible
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 18:52:03 +00:00
Oliver Tappe
c9acc4f8cd * implemented reading of package-infos in BRepositoryCache
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 15:47:20 +00:00
Oliver Tappe
2b6e6760b6 * add listing of repository attributes to 'package_repo list'
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 12:48:02 +00:00
Clemens Zeidler
df0ad9c12a Fix account name in mail.
Work in progress: fetch next partial downloaded message.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 02:19:49 +00:00
Clemens Zeidler
9c4e0ece54 Use macro instead hard coded string.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 02:00:58 +00:00
Oliver Tappe
34d56c1bf5 * implemented repository reader and fixed some bugs in writer that
have been exposed during testing of reader

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 20:25:10 +00:00
Oliver Tappe
c2388992ec * added embedding of license texts that need approval into repository
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:24:50 +00:00
Oliver Tappe
36d702ec79 * read package attributes before reading the TOC, as that allows to
take action in the content-handler that depend on the values of
  package attributes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:23:43 +00:00
Oliver Tappe
d662b8345f * moved BlockBufferCacheNoLock into package kit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 17:22:31 +00:00
Oliver Tappe
ad6a8dbe2b Pulled reusable stuff from PackageReaderImpl into new class ReaderImplBase.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-14 13:09:09 +00:00
Clemens Zeidler
a47656d480 Don't free stuff not belongs to us. Fix #7212 maybe #7213.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-13 21:50:15 +00:00
Oliver Tappe
05b101b223 Cleanup following up on r40466:
* remove commented methods no longer being used


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-12 22:09:47 +00:00
Oliver Tappe
33bc4425be Largish adjustments to PackagerReaderImpl and package attribute
handling:
* package attributes are now compatible with the low level attribute
  handling of other HPKG attributes (such that 'package dump' now shows 
  package attributes, too)
* dropped type names from hpkg format, the attributes were identified
  by IDs already and this simplifies the code considerably. Type names
  are now handled in BLowLevelPackageHandler only.
* instead of rolling their own mechanism, high-level package attributes 
  handling is now implemented via a corresonding set of 
  AttributeHandler-subclasses
* adjusted package writer to only write package attributes that are
  needed (empty ones are left out)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-12 19:21:37 +00:00
Axel Dörfler
41b9586a0a * Let SelectionWindow::MoveCloseToMouse() also take the current workspace into
account. This fixes bug #7211.
* Also, don't move it that close to the border of the screen (it now keeps an
  offset of 20 pixels).
* Always move the selection window to the mouse position, even if it's already
  on screen.
* Close the window when pressing the escape key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-12 18:07:20 +00:00
Axel Dörfler
c335592329 * getaddrinfo() now detects at runtime if IPv6 is available, and will prefer
IPv6 interfaces when AF_UNSPEC is set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-11 23:25:17 +00:00
Axel Dörfler
448e9976cf * We need to convert the endian of the passed in IPv4 address.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-11 22:49:07 +00:00
Axel Dörfler
3cb2e2a3d2 * Fixed retrieving the port from IPv6 addresses; ie. we now support the
"[addr]:port" notation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-11 22:27:19 +00:00
Axel Dörfler
0e4bbb1bee * No need to set the family there, the domain is what matters.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-11 20:19:33 +00:00
Philippe Houdoin
9fd5bdcbd4 Made BPrintJob layout aware: while drawing recursively, we can't anymore
assume that all children B_WILL_DRAW.
Also call Draw() only when the view said it will.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-11 17:06:41 +00:00
Clemens Zeidler
3d2622c790 Fix partial download limit. Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 21:46:41 +00:00
Oliver Tappe
129e6b943f Disallow the use of 'any' as repository architecture
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:40:38 +00:00
Oliver Tappe
84d9977244 * add support to storing names and texts of licenses that require
approval to repository-info

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:07:21 +00:00
Oliver Tappe
4dcc52327b Fix problems in repository writer
* actually write the checksum
* compress the repository info archive, too (handle it as separate
  section)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 19:05:35 +00:00
Axel Dörfler
cf93c8c719 * FindAddress(), and FindFirstAddress() now return -1 on failure.
* FindFirstAddress() did actually not specify the family to find, so that the
  stack did not have the opportunity to find anything else but the first
  address.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 18:13:15 +00:00
Oliver Tappe
91ebce663d Some cleanup, no functional change
* typedef base classes as 'inherited' and use that instead of the
  explicit base class name
* remove superfluous scopes in case blocks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-10 17:16:35 +00:00
Jérôme Duval
245df7abd3 added exFAT partition type
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 20:30:00 +00:00
Axel Dörfler
e0971ab8f6 * Restricted the cursor position/selection restoration to the formula mode for
stored queries - it's usually more annoying than helpful for the other modes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 19:20:34 +00:00
Oliver Tappe
0d68f6afb3 Implemented repository writing:
* fleshed out RepositoryWriterImpl
* renamed BRepositoryHeader to BRepositoryInfo (in accordance with
  BPackageInfo)
* adjusted BRepositoryInfo to be able to parse itself from a
  driver_settings file
* added package_repo binary (only 'create' works as of yet)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 19:11:23 +00:00
Clemens Zeidler
c608a3b2bc Fix count_pop_accounts. Returns number of all accounts regardless if it is a pop account or not (as before and in the whole file)...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 10:10:17 +00:00
Clemens Zeidler
2e5122917d Re-add/fix old c mail api functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 09:58:00 +00:00
Clemens Zeidler
1af4fa4ba6 Major restructuring of the mail server:
Accounts are now stored in a separate file. Previously they where somehow magically assembled from the chain ids. Now its possible to remove a account temporary by removing the account file form the account folder.

Each account could have an inbound protocol, an outbound protocol and some filters.

Mails are now associated with an account and not with a chain. This required to replace the chain id attribute by an account attribute.

Replace BMailFilter and BMailChain by a less general approach. Basically the chain had a list of filters and call the ProcessMailMessage for each filter. This made it sometime difficult to understand what is going on, e.g. sometimes a filter used information gathered by another filters. The new MailProtocol and MailFilter classes are calling more dedicated hook functions, e.g. HeaderFetched or MessageReadyToSend.

As before all MailProtocol's (plus their filters) are running in their own thread.

Cleaned up the error and status window a bit. Abstracted the interface to these windows. Should be easy to write a BNotification api back-end now.

Parsing of mail headers is much faster now. Fetching the headers of a large mailbox takes ~min and not ~hour now! Initial checkout time is in the same order like Opera. The problem was the massive use of fgets in parse_header (mail_util.cpp) now the complete header is read in one go. Furthermore, only interesting fields are extracted.

Remove some unused files, BeOS relicts... Feel free to translate the mail server and remove the own language system (headers/private/mail/MDRLanguage.h).

Sorry for the remaining old (and new) coding style issues, sometime just ignore them, to many :(



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 01:49:01 +00:00
Oliver Tappe
8b94d2ff6a * add stubbed RepositoryWriter to build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 20:15:50 +00:00
Oliver Tappe
d77c6cd26a * implemented checking of licenses, such that it is no longer possible
to create a package that refers to a license that is not a system
  license or contained in the package
* added package-info flags (currently only approve_license and 
  system_package)
* adjusted package-reader/writer and pkgman accordingly

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 19:50:36 +00:00
Oliver Tappe
4ee7d007d6 Cleanup:
* PackageWriterImpl no longer accesses members of WriterImplBase 
  directly, but uses getters/setters instead
* package attribute registration has been moved from PackageWriterImpl
  to WriterImplBase, as it will be used in the same manner by the
  RepositoryWriter


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 10:59:38 +00:00
Oliver Tappe
f202217364 Refactoring step towards implementation of RepositoryWriter:
* pulled commonly useful parts out of PackageWriterImpl into 
  WriterImplBase
* moved CachedStringTable and related methods into a separate class,
  StringCache, in order to support having more than one string cache
  per package file
* made package attribute section use a string cache, too, as that's
  going to be very useful for repositories
* instead of writing package attributes directly, we now collect
  corresponding PackageAttributes and write those later
* adjusted package reader accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-07 22:25:16 +00:00
Stephan Aßmus
2b52661315 Added another GetInfo() variant with which one can retrieve the count and
fixed size flag at once. Not sure if this can be merged into one of the
existing GetInfo() variants without breaking binary compatibility.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-07 20:10:14 +00:00
Oliver Tappe
aaf05784d4 * some rearrangements and renames with respect to public/private
types and defines of HPKG
* added header, magic and version for haiku repository format

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-07 13:04:00 +00:00
Alexander von Gluck IV
96a8b92d21 cleanup of some bad language and style within bitfield counting optimization as per axel; made addr_bitcount static
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-05 16:15:58 +00:00
Alexander von Gluck IV
0d6862d9b9 added optimized gcc builtin bit population count as per Axel's recommendation; the optimized function might be used for the ipv6 netmask length as well.. i just don't want to touch that double for loop without *LOTS* of testing; lets hope this isn't my first build-breaker
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 23:32:58 +00:00
Oliver Tappe
884a0b23cb * cage the somewhat ugly duality between TOC and package attributes
section access into the SectionInfo structure, of which 
  PackageReaderImpl now keeps two instances and a pointer to the
  current of these two


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 22:42:56 +00:00
Oliver Tappe
fd9c0b3361 * added support for compressing the package attributes section to
PackageWriterImpl
* added my own copyright

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 22:40:10 +00:00
Oliver Tappe
ceb993ab40 * rename AsString() methods to ToString() as suggested by Ingo
(following the naming used by other classes)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:53:54 +00:00
Oliver Tappe
6f0278cdc9 Implemented reading of package info attributes from hpkg file
* added kernel-compatible datatypes for reading package info attribute 
  values (PackageInfoAttributeValue.h) - these will be used at a later
  stage by the package-fs to transport those attributes to userland
  when asked to do so (by ioctl)
* implemented parsing of package info attributes in PackageReaderImpl
* added support for compressed package attribute section to 
  PackageReaderImpl
* completed the writing of package info attributes in PackageWriterImpl
  and fixed a couple of bugs exposed by parsing
* adjusted 'package list' to show the package info attributes as they
  are found


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:43:07 +00:00
Oliver Tappe
531d191219 * made resolvable expression operator an enum instead of a string
* fixed a couple of copy'n'paste bugs during parsing of resolvable
  expression lists (they were all added as 'requires')


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:34:19 +00:00
Oliver Tappe
68dc1eb6ad * implemented writing of package attributes to hpkg file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 22:01:44 +00:00
Oliver Tappe
2f7778f375 * added some missing method implementations in BPackageResolvable
and BPackageResolvableExpression
* switched GetAsString() to a AsString() as that's much more convenient
  and nothing can go wrong anyway


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 22:01:17 +00:00
Oliver Tappe
cb16f69582 * fix incorrect positioning when parsing minor version string
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 21:57:52 +00:00
Oliver Tappe
bc1bd8bac0 * updated copyright section for NaturalCompare according to commit
logs (the OpenTracker license doesn't apply since NaturalCompare
  was never part of OpenTracker).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-01 11:25:36 +00:00